diff --git a/404.html b/404.html index 04930bff..417932af 100644 --- a/404.html +++ b/404.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/advancement/index.html b/advancement/index.html index 03aad2de..12fb98a4 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -18,7 +18,7 @@ - Advancement Generator Minecraft 1.17, 1.18, 1.18.2 + Advancement Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index c1a6600d..438c4a9e 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -18,7 +18,7 @@ - Blockstate Generator Minecraft 1.17, 1.18, 1.18.2 + Blockstate Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/assets/index.55e505ff.js b/assets/index.55e505ff.js new file mode 100644 index 00000000..88b0a1d0 --- /dev/null +++ b/assets/index.55e505ff.js @@ -0,0 +1,2 @@ +var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,s=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,i=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&s(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&s(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,r as u,l as h,g as m,b as p,s as f,c as g,d as v,e as w,f as _,j as y,h as b,i as x,k,m as C,n as M,q as A,A as I,F as z,o as j,p as E,t as $,C as O,u as S,I as L,v as P,w as D,x as V,z as N,_ as T,X as B,B as H,D as R,E as F,G,H as W,J,K as U,L as Y,M as q,N as Z,O as X,P as K,Q,Z as ee,R as te,S as ne,T as oe,U as re,V as ae,W as se,Y as ie,$ as le,a0 as ce,a1 as de,a2 as ue}from"./vendor.7530e44b.js";var he;function me({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function pe({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:s}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:s,"aria-label":r},e&&Fe[e],t&&d("span",null,t))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.setPrefersColorScheme=function(e){r(7,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(he||(he={}));var fe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Español"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","ref":"1.18.1"},{"id":"1.18.2","ref":"1.18.1"},{"id":"1.19","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/density_function","url":"worldgen/density-function","category":"worldgen","schema":"density_function","minVersion":"1.18.2"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16","maxVersion":"1.18.2"},{"id":"worldgen/structure","url":"worldgen/structure","category":"worldgen","schema":"structure","minVersion":"1.19"},{"id":"worldgen/structure_set","url":"worldgen/structure-set","category":"worldgen","schema":"structure_set","minVersion":"1.18.2"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"worldgen/world_preset","url":"worldgen/world-preset","category":"worldgen","schema":"world_preset","minVersion":"1.19"},{"id":"worldgen/flat_level_generator_preset","url":"worldgen/flat-world-preset","category":"worldgen","schema":"flat_level_generator_preset","minVersion":"1.19"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function ge(e){return"object"==typeof e&&null!==e}const ve=e=>("0"+e.toString(16)).substr(-2);function we(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,ve).join("")}function _e(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function ye(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new h.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new h.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function be(e){let t=0;for(let n=0;n=0&&(e=e.slice(0,t)),xe(e)}function Ce(e){const t=ke(e).replace(/^\//,"").replace(/\/$/,"");return fe.generators.find((e=>e.url===t))}function Me(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function Ae(e,t){const n=m(),o=Me(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));p(`${t?xe(t):ke(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function Ie(e){const t=Math.abs(be(e));return[t%256,(t>>8)%256,(t>>16)%256]}function ze(e){return e*e}function je(e,t,n){return Math.max(e,Math.min(t,n))}function Ee(e,t,n){return n<0?e:n>1?t:$e(n,e,t)}function $e(e,t,n){return t+e*(n-t)}function Oe(e){return e instanceof Error?e.message:`${e}`}const Se=u();function Le(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;o{}:e=>{const t=e.target.value;null==l||l(t)},h=f(null);c((()=>{r&&h.current&&h.current.select()}),[r]);const m=i&&we();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Fe[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:s,list:m}),i&&d("datalist",{id:m},i.map((e=>d("option",{value:e})))))}function Ve({cooldown:e,invert:t,initial:n}={}){const[o,r]=g(n),a=f(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function Ne({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const s=f(null),i=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{i.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===i.current){const t=e.offsetX/s.current.clientWidth,n=e.offsetY/s.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-i.current[0],r=e.offsetY-i.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],u.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{u.current=!0;const e=d.current[0]/s.current.clientWidth,t=d.current[1]/s.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),i.current=[e.offsetX,e.offsetY]},a=()=>{i.current=void 0},c=()=>{null==r||r()};return s.current.addEventListener("mousedown",e),s.current.addEventListener("mousemove",t),s.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=s.current)||n.removeEventListener("mousedown",e),null==(o=s.current)||o.removeEventListener("mousemove",t),null==(r=s.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],s.current]);const h=f(),m=f(0);return h.current=async()=>{const n=s.current.getContext("2d"),o=e();s.current.width=o[0],s.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;try{await t(r)}catch(i){throw i}a===m.current&&n.putImageData(r,0,0)},{canvas:s,redraw:h.current}}function Te(){const[e,t]=g(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function Be(e){const[t,n]=g(matchMedia(e).matches),o=e=>{n(e.matches)};return c((()=>{const t=matchMedia(e);return t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}}),[e]),t}function He(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function Re(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:s}=e,[c,u]=Te();return d("div",i({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(pe,l(i({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},s))}const Fe={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),square:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})),square_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function Ge({error:e,onDismiss:t}){const[n,o]=g(!1),[r,a]=g(void 0);c((()=>{if(e instanceof Error){const t=e.stack.split("\n").map((e=>e.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)")));a(t.join("\n")),v.exports.mapStackTrace(t.join("\n"),(e=>{const t=e.map((e=>e.replace(/..\/..\/src\//,"src/"))).join("\n");a(t)}))}}),[e]);const s=w((()=>{let t="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(t+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(t+=`&body=${encodeURIComponent(`\`\`\`\n${e.name}: ${e.message}\n${r}\n\`\`\`\n`)}`)):t+=`?title=${encodeURIComponent(e.toString())}`,t}),[e,r]);return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Fe.x),d("h3",null,e instanceof Error?e.message:e,r&&d("span",{onClick:()=>o(!n)},Fe.info)),r&&n&&d("pre",null,r),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:s,target:"_blank"},"on GitHub")))}function We({label:e,value:t,onChange:n}){const o=we();return d("label",{class:"checkbox"},d("input",{id:o,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Je(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",i(i({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const Ue=Je("TextInput","text",(e=>e)),Ye=Je("NumberInput","number",(e=>Number(e))),qe=Je("RangeInput","range",(e=>Number(e)));function Ze({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=g(""),s=w((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(_,null,d(De,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},s.map((e=>d(pe,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===s.length&&d(pe,{label:null!=o?o:"No results"})))}const Xe="https://raw.githubusercontent.com/misode/technical-changes/main";let Ke=null;async function Qe(){if(!Ke){const e=await(await fetch(`${Xe}/index.json`)).json();Ke=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Xe}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${Xe}/${e.id}/${t.id}.md`)).text()).map((r=>i({version:t,group:e,order:1e3*n+o},r)))}(e,et(n),t,o))))).flat()}(et(e),t))))).flat().map((e=>l(i({},e),{tags:[e.group.id,...e.tags]})))}return Ke}function et(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:ge(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const tt="https://raw.githubusercontent.com/misode/mcmeta";function nt(e,t){return`${tt}/${e.dynamic?t:`${e.ref}-${t}`}`}async function ot(e){e.dynamic&&("22w11a"!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${Oe(t)}`)}}((e=>e.startsWith(`${tt}/summary/`)||e.startsWith(`${tt}/data/`))),localStorage.setItem("cached_latest_version","22w11a")),e.ref="22w11a")}async function rt(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await it(`${nt(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",Oe(n))}}async function at(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await it(`${nt(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Oe(n))}}async function st(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=fe.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${nt(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Oe(r)}`)}}async function it(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${Oe(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const lt=["1.15","1.16","1.17","1.18","1.18.2","1.19"],ct={},dt={},ut={1.15:y,1.16:b,1.17:x,1.18:k,"1.18.2":C,1.19:M};let ht,mt,pt,ft;async function gt(e){return ct[e]||(ct[e]=(async()=>{try{const t=ut[e].getCollections(),n={};await async function(e,t,n){const o=fe.versions.find((t=>t.id===e));o?(await ot(o),await Promise.all([rt(o,t),at(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(fe.versions)}`)}(e,t,n);const o=ut[e].getSchemas(t);return ct[e]={collections:t,schemas:o,blockStates:n},ct[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Oe(t)}`)}})()),ct[e]}function vt(e,t,n){const o=fe.versions.findIndex((t=>t.id===e)),r=t?fe.versions.findIndex((e=>e.id===t)):0,a=n?fe.versions.findIndex((e=>e.id===n)):fe.versions.length-1;return r<=o&&o<=a}const wt={},_t=function(e,t){if(!t)return e();if(void 0===ft){const e=document.createElement("link").relList;ft=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in wt)return;wt[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":ft,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var yt,bt,xt=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","changelog.no_results":"No changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","highlighting":"Highlighting","loading":"Loading...","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","title.versions":"Versions Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),kt=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:xt});(bt=yt||(yt={})).ID_LANGUAGE="language",bt.ID_THEME="theme",bt.ID_VERSION="schema_version",bt.ID_INDENT="indentation",bt.ID_FORMAT="output_format",bt.ID_HIGHLIGHTING="output_highlighting",bt.ID_SOUNDS_VERSION="minecraft_sounds_version",bt.ID_PROJECTS="misode_projects",bt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(bt.ID_LANGUAGE))?e:"en"},bt.getTheme=function(){var e;return null!=(e=localStorage.getItem(bt.ID_THEME))?e:"dark"},bt.getVersion=function(){const e=localStorage.getItem(bt.ID_VERSION);return e&<.includes(e)?e:"1.18.2"},bt.getIndent=function(){var e;return null!=(e=localStorage.getItem(bt.ID_INDENT))?e:"2_spaces"},bt.getFormat=function(){var e;return null!=(e=localStorage.getItem(bt.ID_FORMAT))?e:"json"},bt.getHighlighting=function(){return"false"!==localStorage.getItem(bt.ID_HIGHLIGHTING)},bt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(bt.ID_SOUNDS_VERSION))?e:"latest"},bt.getProjects=function(){const e=localStorage.getItem(bt.ID_PROJECTS);return e?JSON.parse(e):[Et]},bt.setLanguage=function(e){e&&localStorage.setItem(bt.ID_LANGUAGE,e)},bt.setTheme=function(e){e&&localStorage.setItem(bt.ID_THEME,e)},bt.setVersion=function(e){e&&localStorage.setItem(bt.ID_VERSION,e)},bt.setIndent=function(e){e&&localStorage.setItem(bt.ID_INDENT,e)},bt.setFormat=function(e){e&&localStorage.setItem(bt.ID_FORMAT,e)},bt.setHighlighting=function(e){void 0!==e&&localStorage.setItem(bt.ID_HIGHLIGHTING,e.toString())},bt.setSoundsVersion=function(e){e&&localStorage.setItem(bt.ID_SOUNDS_VERSION,e)},bt.setProjects=function(e){e&&localStorage.setItem(bt.ID_PROJECTS,JSON.stringify(e))};const Ct=A({lang:"none",locale:e=>e,changeLanguage:()=>{}}),Mt={fallback:xt};function At(e,t,...n){var o,r,a,s,i;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(i=null!=(s=null!=(a=null==(o=Mt[e])?void 0:o[t])?a:null==(r=Mt.en)?void 0:r[t])?s:Mt.fallback[t])?i:t,n)}async function It(e){if(Mt[e])return;const t=fe.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return _t((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return _t((()=>Promise.resolve().then((function(){return kt}))),void 0);case"../../locales/es.json":return _t((()=>import("./es.833a9774.js")),void 0);case"../../locales/fr.json":return _t((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return _t((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return _t((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return _t((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return _t((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return _t((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return _t((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return _t((()=>import("./zh-cn.a421074a.js")),void 0);case"../../locales/zh-tw.json":return _t((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return _t((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return _t((()=>import("./de.6c6a67f3.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return _t((()=>import("./en.a3c526c1.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return _t((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return _t((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return _t((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return _t((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return _t((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return _t((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return _t((()=>import("./ru.cc3bc989.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return _t((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return _t((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return _t((()=>import("./zh-tw.bdc36a24.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);Mt[e]=i(i({},n.default),o.default)}function zt(){return z(Ct)}function jt({children:e}){const[t,n]=g("none"),o=I(((e,...n)=>At(t,e,...n)),[t]),r=I((async e=>{await It(e),he.setLanguage(e),yt.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=yt.getLanguage();await Promise.all([It("en"),..."en"!==e?[It(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(Ct.Provider,{value:a},e)}const Et={name:"Drafts",namespace:"draft",files:[]},$t=A({project:Et,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function Ot(){return z($t)}function St({children:e}){const[t,n]=g(yt.getProjects()),[o,r]=g(Et.name),a=w((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:Et}),[t,o]),[s,c]=g(void 0),u=w((()=>{if(s)return a.files.find((e=>e.type===s[0]&&e.id===s[1]))}),[a,s]),h=I((e=>{yt.setProjects(e),n(e)}),[]),m=I((e=>{h(t.map((t=>t.name===o?i(i({},t),e):t)))}),[t,o]),f=I(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,s=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&s)return!1;m({files:a.files.map((o=>o.type===e&&o.id===t?l(i(i({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(s)return!1;m({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else m({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[m,a,u]),v=I(((e,t)=>{const n=fe.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),p(xe(n.url))}),[]),_=I((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:m,updateFile:f,openFile:v,closeFile:_};return d($t.Provider,{value:y},e)}function Lt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=fe.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const Pt=A({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function Dt(){return z(Pt)}function Vt({children:e}){const[t,n]=g(yt.getTheme()),o=Be("(prefers-color-scheme: light)"),r=Be("(prefers-color-scheme: dark)");c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const a=I((e=>{he.setTheme(e),yt.setTheme(e),n(e)}),[]);c((()=>{he.setPrefersColorScheme(o?"light":r?"dark":"none")}),[o,r]);const s={theme:t,actualTheme:"light"===t||"dark"!==t&&o?"light":"dark",changeTheme:a};return d(Pt.Provider,{value:s},e)}const Nt=A({title:"",changeTitle:()=>{}});function Tt(e,t){const n=z(Nt);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function Bt({children:e}){const{locale:t}=zt(),[n,o]=g(t("title.home")),r={title:n,changeTitle:I(((e,t)=>{null!=t||(t=fe.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(Nt.Provider,{value:r},e)}const Ht=A({version:"1.18.2",changeVersion:()=>{}});function Rt(){return z(Ht)}function Ft({children:e}){const[t,n]=g(yt.getVersion()),o=Me(m()).get("version");c((()=>{lt.includes(o)&&t!==o&&n(o)}),[t,o]);const r=I((e=>{Me(m()).has("version")&&Ae({version:e}),he.setVersion(e),yt.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(Ht.Provider,{value:a},e)}let Gt=!1;const Wt={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Jt,Ut;async function Yt(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return Le(n,Jt)||(Jt=Se(n),Ut=await async function(e,t){var n,o,r,a,s;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new D(O.parse(e.biome));case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,i=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const s=(((t>>n)+(r>>n))%i+i)%i;return O.parse(null==(a=e.biomes)?void 0:a[s].node)}};case"multi_noise":switch(null==(s=e.preset)?void 0:s.replace(/^minecraft:/,"")){case"nether":e=vt(t.version,"1.18")?Kt:Xt;break;case"overworld":e=vt(t.version,"1.18")?await async function(){return(await st("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),vt(t.version,"1.18")){await async function(){Gt||(await V(N),Gt=!0,console.debug(`Loaded deepslate-rs from "${N}"`))}();const n=new Pe,o=e=>"number"==typeof e?[e,e]:e,[r,a,s,i,l,c,d,u,h,m,p,f,g,v]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:w,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),s.push(o(w)[0]),i.push(o(w)[1]),l.push(o(_)[0]),c.push(o(_)[1]),d.push(o(y)[0]),u.push(o(y)[1]),h.push(o(b)[0]),m.push(o(b)[1]),p.push(o(x)[0]),f.push(o(x)[1]),g.push(k),v.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const w=j(new Float64Array(r),new Float64Array(a),new Float64Array(s),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(m),new Float64Array(p),new Float64Array(f),new Float64Array(g),new Int32Array(v)),_=E(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=$(w,_,e,e+1,1,t,t+1,1,o,o+1,1);return O.parse(null!=(r=n.getA(a[0]))?r:"unknown")},getBiomes:(e,t,o,r,a,s,i,l,c)=>[...$(w,_,e,t,o,r,a,s,i,l,c)].map((e=>{var t;return O.parse(null!=(t=n.getA(e))?t:"unknown")})),getClimate(e,t,n){const o=S(_,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,s,i,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:s,erosion:i,weirdness:l}},getClimates(e,t,n,o,r,a,s,i,l){const c=S(_,e,t,n,o,r,a,s,i,l),d=[];for(let u=0;u{var r;const a=e[`${n}_noise`];return a.firstOctave=je(null!=(r=a.firstOctave)?r:-7,-100,-1),new L(new P(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let s=1/0,i="";for(const{biome:n,parameters:l}of e.biomes){const e=ze(l.altitude-a[0])+ze(l.temperature-a[1])+ze(l.humidity-a[2])+ze(l.weirdness-a[3])+ze(l.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(nn(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return je(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(je(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let s=0;s=n.size[0]||s[1]>=n.size[1]||s[2]>=n.size[2])continue;const e=s[2]*(4*t.width)+4*s[0],o=i{ln(t,null==e?void 0:e.decorator,n).forEach((t=>sn(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{sn(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void sn(t,a.feature,n);sn(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;sn(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},dn={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat(){var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200){var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),s=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(s).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,Qt[je(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>ln(t,null==e?void 0:e.outer,n).flatMap((t=>ln(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,s;return on(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(s=null==e?void 0:e.baseline)?s:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>on(t,Math.max(n.seaLevel,Qt[je(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Qt[je(0,63,t[0])]);return on(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>on(t,Math.max(n.seaLevel,Qt[je(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o[t],range:(e,t,n)=>{var o,r,a;return on(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return on(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,s;return on(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(s=null==e?void 0:e.bottom_offset)?s:0)))},spread_32_above:(e,t,n)=>on(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>on(t,Qt[je(0,63,t[0])]),magma:(e,t,n)=>on(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=Qt[je(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),s=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]s?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function un(e,t,n){var o;let r=[e];for(const a of t){hn[nn(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>hn[nn(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const hn={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>on(t,function(e,t){var n,o,r,a;if(!ge(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return rn(e);switch(nn(e.type)){case"constant":return rn(e.value);case"uniform":{const n=rn(e.min_inclusive),o=rn(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=rn(e.min_inclusive),a=rn(e.max_inclusive),s=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(s+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=rn(e.min_inclusive),o=rn(e.max_inclusive),a=null!=(r=e.inner)?r:1,s=n+a+t.nextInt(o-n-a+1),i=n+t.nextInt(s-n);return n+t.nextInt(i-n+a)}case"trapezoid":{const n=rn(e.min_inclusive),o=rn(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const s=(o-n-r)/2,i=o-n-s;return n+t.nextInt(i+1)+t.nextInt(s+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>on(e,Math.max(t.seaLevel,Qt[je(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),s=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),i=Math.max(0,Math.ceil((s+(null!=n?n:0))*e));return new Array(i).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class mn{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new P(e);this.minLimitPerlinNoise=new T(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new T(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new T(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new T(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(s=n,i=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],$e(i,$e(s,l,c),$e(s,d,u)))}var s,i,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,s=r/this.settings.sampling.y_factor,i=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,s);const c=((1-2*l/this.chunkCountY+i)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=Ee(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=Ee(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,s){let i=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=T.wrap(e*o*d),m=T.wrap(t*r*d),p=T.wrap(n*o*d),f=r*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(i+=g.sample(h,m,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(l+=v.sample(h,m,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(T.wrap(e*a*d),T.wrap(t*s*d),T.wrap(n*a*d),s*d,t*s*d)/d)}d/=2}return Ee(i/512,l/512,(c/10+1)/2)}}const pn={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let fn,gn,vn=[];const wn=new Map;async function _n(e,t,n){var o,r,a;if(vt(n.version,"1.18")){vt(n.version,"1.18.2")&&await xn(n.version);const{settings:r,generator:a}=function(e,t){const n=q.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!Le(o,fn))if(fn=Se(o),vn=[],vt(t.version,"1.18.2")){const e=new D(O.create("unknown"));gn=new Z(t.seed,e,n)}else{const e=new ee("unknown");gn=new X(t.seed,e,n)}return{settings:n,generator:gn}}(e,n),s=new Cn(-n.offset,n.width,r.noise.minY,r.noise.height);s.generate(a,n.biome);const i=t.data;for(let e=0;easync function(e,t,n,o){const r=await async function(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=fe.versions.find((t=>t.id===e));await ot(n);try{const e=await it(`${nt(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(e.map((async e=>[e,await it(`${nt(n,"data")}/data/minecraft/${t}/${e}.json`)]))))}catch(o){throw new Error(`Error occurred while fetching all ${t} presets: ${Oe(o)}`)}}(e,n),a=new U(O.create(n));for(const[s,i]of r.entries())a.register(O.parse(s),o.fromJson(i));t.register(a.key,a)}(e,n,t,o)))),wn.set(e,n)),Y.DENSITY_FUNCTION.clear().assign(n.getOrThrow(O.create("worldgen/density_function"))),Y.NOISE.clear().assign(n.getOrThrow(O.create("worldgen/noise")))}function kn(e,t){return e[t]>0?0:e[t+1]>0?150:255}class Cn{constructor(e,t,n,o){this.minX=e,this.done=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,s=vn.find((e=>e.pos[0]===a));return s?(this.done[r]=!0,s):new K(n,o,B.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n,!0),e.buildSurface(n,t),this.done[o]=!0,vn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const Mn=["biomes","temperature","humidity","continentalness","erosion","weirdness"],An=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=zt(),[s,l]=g(2),[u,m]=g(void 0),[p,v]=g(new Set(["biomes"])),y=f([0,0]),b=f(1),x=f(void 0),k=BigInt(e.get(new h.Path(["generator","seed"]))),C=w((()=>{if(n)return function(e){if("string"!=typeof e){e=q.fromJson(h.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}(e.get(new h.Path(["generator","settings"])))}),[n]),M=n?function(e,t){return JSON.stringify([e,t])}(t,C):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:I,redraw:z}=Ne({size:()=>[200/b.current,200/b.current],async draw(e){const n={octaves:C,biomeColors:{},layers:p,offset:y.current,scale:s,seed:k,res:b.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:s}=await Yt(e,n),i=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],m=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=s.getBiomes)?void 0:o.call(s,...h,64,65,1,...m):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),g=0===f.length||null==(r=s.getClimates)?void 0:r.call(s,...h,64,65,1,...m);for(let v=0;v<200;v+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+v*u,o=v/n.res*200/n.res+e/n.res,r=(v+l)*n.scale,h=(e+c)*n.scale;let m=[50,50,50];if(n.layers.has("biomes"))m=qt((null!=(a=null==p?void 0:p[o])?a:s.getBiome(r,64,h)).toString(),n.biomeColors);else if(g&&f[0]){const e=g[o][f[0]],[t,n]=Wt[f[0]],r=(e-t)/(n-t)*256;m=[r,r,r]}i[t]=m[0],i[t+1]=m[1],i[t+2]=m[2],i[t+3]=255}}(t,e,n),4===b.current&&(clearTimeout(x.current),x.current=setTimeout((()=>{b.current=1,z()}),150))},async onDrag(e,t){y.current[0]=y.current[0]+200*e,y.current[1]=y.current[1]+200*t,clearTimeout(x.current),b.current="multi_noise"===A?4:1,z()},async onHover(e,n){const r={octaves:C,biomeColors:{},layers:p,offset:y.current,scale:s,seed:k,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await Yt(e,o),[s,l]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return i({biome:a.getBiome(s,64,l).toString()},null==(r=a.getClimate)?void 0:r.call(a,s,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);m(a)},onLeave(){m(void 0)}},[M,s,k,p]);c((()=>{n&&(b.current="multi_noise"===A?4:1,z())}),[M,s,k,p,n]);const j=e=>{y.current[0]=y.current[0]*s/e,y.current[1]=y.current[1]*s/e,l(e)};return d(_,null,d("div",{class:"controls preview-controls"},u&&d(pe,{label:u.biome,class:"no-pointer"}),"multi_noise"===A&&d(Re,{icon:"stack",tooltip:a("configure_layers")},Mn.map((e=>{const t=p.has(e);return d(pe,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{v(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(_,null,d(pe,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>j(1.5*s)}),d(pe,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>j(s/1.5)})),"multi_noise"===A&&d(pe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>ye(e)})),(null==u?void 0:u.temperature)&&d("div",{class:"controls secondary-controls"},d(pe,{class:"no-pointer",label:Object.entries(u).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:I,width:"200",height:"200"}))};const In=({data:e,version:t,shown:n})=>{const{locale:o}=zt(),[r,a]=g(4),[s,i]=g(_e()),{canvas:l,redraw:u}=Ne({size:()=>[16*r,16*r],async draw(n){tn(e,n,{seed:s,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,s,n]),d(_,null,d("div",{class:"controls preview-controls"},d(pe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(pe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(pe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>i(_e())})),d("canvas",{ref:l,width:"64",height:"64"}))},zn=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=zt(),[s,i]=g(_e()),[l,u]=g(!1),[h,m]=g(void 0),p=f(0),v=f(void 0),w=JSON.stringify([e]),y=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:b,redraw:x}=Ne({size:()=>[y,y],async draw(t){const o={offset:p.current,width:t.width,seed:s,version:n};await yn(e,t,o)},async onDrag(e){p.current+=e*y,x()},async onHover(t,n){var o,r;const a=Math.floor(t*y-p.current),s=y-Math.max(1,Math.ceil(n*y))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);m(`X=${a} Y=${s}`)},onLeave(){m(void 0)}},[w,s]);return c((()=>{v.current&&clearInterval(v.current),t&&(x(),l&&(v.current=setInterval((()=>{p.current-=8,x()}),100)))}),[w,s,t,l]),d(_,null,d("div",{class:"controls preview-controls"},h&&d(pe,{label:h,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},d(pe,{icon:l?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>u(!l)})),d(pe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(_e())})),d("canvas",{ref:b,width:y,height:y}))},jn=({data:e,shown:t,version:n})=>{const{locale:o}=zt(),[r,a]=g(_e()),[s,i]=g(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:m,redraw:p}=Ne({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:s,seed:r,version:n};!function(e,t,n){const o=new P(n.seed),r=Q.fromJson(h.DataModel.unwrapLists(e)),a=new L(o,r),s=-n.offset[0]-100,i=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+s)*n.scale,r=(e+i)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,p()}},[u,s,r]);c((()=>{t&&p()}),[u,s,r,t]);const v=e=>{l.current[0]=l.current[0]*s/e,l.current[1]=l.current[1]*s/e,i(e)};return d(_,null,d("div",{class:"controls preview-controls"},d(pe,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>v(1.5*s)}),d(pe,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>v(s/1.5)}),d(pe,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(_e())})),d("canvas",{ref:m,width:"256",height:"256"}))},En=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=zt(),[s,i]=g(_e()),[l,u]=g("minecraft:plains"),[h,m]=g(.2),[p,v]=g(.1),[y,b]=g(!1),[x,k]=g(void 0),C=f(0),M=f(void 0),A=JSON.stringify([e,h,p]),I=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:z,redraw:j}=Ne({size:()=>[I,I],async draw(t){const o={biome:l,biomeDepth:p,biomeScale:h,offset:C.current,width:t.width,seed:s,version:n};await _n(e,t,o)},async onDrag(e){C.current+=e*I,j()},async onHover(t,n){var o,r;const a=Math.floor(t*I-C.current),s=I-Math.max(1,Math.ceil(n*I))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),i=function(e,t){const n=vn.find((t=>B.minBlockX(t.pos)<=e&&B.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(H.create(e,t,0))}(a,s);k(i?`Y=${s} (${i.getName().path})`:`Y=${s}`)},onLeave(){k(void 0)}},[A,s]);c((()=>{M.current&&clearInterval(M.current),t&&(async()=>{try{await j(),y&&(M.current=setInterval((()=>{C.current-=8,j()}),100))}catch(e){throw e}})()}),[A,s,t,l,h,p,y]);const E=w((()=>{var e;return null!=(e=null==pt?void 0:pt.get("worldgen/biome"))?e:[]}),[n]);return d(_,null,d("div",{class:"controls preview-controls"},x&&d(pe,{label:x,class:"no-pointer"}),d(Re,{icon:"gear",tooltip:a("terrain_settings")},vt(n,void 0,"1.17")?d(_,null,d(De,{label:a("preview.scale"),value:`${h}`,onChange:e=>m(Number(e))}),d(De,{label:a("preview.depth"),value:`${p}`,onChange:e=>v(Number(e))})):d(De,{label:a("preview.biome"),value:l,onChange:u,dataList:E,larger:!0}),d(pe,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(pe,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(_e())})),d("canvas",{ref:z,width:I,height:I}))},$n=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function On({model:e,version:t,id:n,shown:o}){var r;const[,a]=g(0);if(He(e,(()=>{a((e=>e+1))})),!e)return d(_,null);if("dimension"===n&&(null==(r=e.get(new h.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new h.Path(["generator","biome_source"]));if(n)return d(An,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/density_function"===n){const n=e.get(new h.Path([]));if(n)return d(zn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(jn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(En,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&vt(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(In,i({},{model:e,version:t,shown:o,data:n}))}return d(_,null)}function Sn(e,t){return e.schema.hook(Ln,new h.ModelPath(e),e.data,{blockStates:t})}const Ln={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,s;if(void 0===o)return;const i="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(s=r.blockStates)?void 0:s[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;i&&!Object.keys(null!=(a=i.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const s=a[e].hook(this,t.push(e),n[e],o);null!=s&&(r[e]=s)}));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r}},Pn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Dn={json:{parse:ne.parse,stringify:(e,t)=>ne.stringify(e,null,t)+"\n"},yaml:{parse:oe.load,stringify:(e,t)=>oe.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Vn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:s,onError:i}){const{locale:l}=zt(),[u,m]=g(yt.getIndent()),[p,v]=g(yt.getFormat()),[w,y]=g(yt.getHighlighting()),b=f(null),x=f(),k=f(),C=f(),M=f(),A=I(((e,t)=>{const n=Sn(e,t);return Dn[p].stringify(n,Pn[u])}),[u,p]);c((()=>{x.current=()=>{if(t&&n)try{const e=A(t,n);M.current.setValue(e)}catch(e){e instanceof Error?(e.message=`Error getting JSON output: ${e.message}`,i(e)):i(`Error getting JSON output: ${Oe(e)}`),console.error(e),M.current.setValue("")}},k.current=()=>{const e=M.current.getValue();if(0!==e.length)try{const n=Dn[p].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){n instanceof Error?(n.message=`Error importing: ${n.message}`,i(n)):i(`Error importing: ${Oe(n)}`),console.error(n)}}}),[t,n,u,p,w]),c((()=>{if(w){const e=te.edit("editor");e.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),e.$blockScrolling=1/0,e.on("blur",(e=>k.current(e))),e.getSession().setMode("ace/mode/json"),M.current={getValue:()=>e.getSession().getValue(),setValue(t){e.getSession().setValue(t)},configure(t,n){e.setOption("useSoftTabs","tabs"!==t),e.setOption("tabSize","tabs"===t?4:Pn[t]),e.getSession().setMode(`ace/mode/${n}`)},select(){e.selectAll()}}}else M.current={getValue:()=>C.current.value,setValue(e){C.current.value=e},configure(){},select(){}}}),[w]),He(t,(()=>{x.current()})),c((()=>{t&&x.current()}),[t]),c((()=>{M.current.configure(u,p),x.current()}),[u,p,w]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(A(t,n)).then((()=>{s()}))}),[o]),c((()=>{if(r&&t&&n&&b.current){const o=encodeURIComponent(A(t,n));b.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),b.current.setAttribute("download",`${e}.${p}`),b.current.click()}}),[r]),c((()=>{a&&M.current&&(M.current.setValue(""),M.current.select())}),[a]);return d(_,null,d("div",{class:"controls source-controls"},d(Re,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(Pn).map((([e])=>d(pe,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,yt.setIndent(t),void m(t);var t}}))),d("hr",null),Object.keys(Dn).map((e=>d(pe,{label:l(`format.${e}`),active:p===e,onClick:()=>{return t=e,yt.setFormat(t),void v(t);var t}}))),d("hr",null),d(pe,{icon:w?"square_fill":"square",label:l("highlighting"),onClick:()=>{return e=!w,yt.setHighlighting(e),void y(e);var e}}))),w?d("pre",{id:"editor",class:"source"}):d("textarea",{ref:C,class:"source",spellcheck:!1,autocorrect:"off",onBlur:k.current}),d("a",{ref:b,style:"display: none;"}))}class Nn extends h.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const Tn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","structure_placement.type","density_function.type"],Bn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],Hn=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],Rn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type","density_function.type"],Fn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],Gn=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],Wn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],Jn=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],Un=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function Yn({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[s,i,l]=e.schema.hook(qn,a,Se(e.data),t,n,o,{});return(null==(r=null==i?void 0:i.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},s,i),d("div",{class:"node-body"},l)):l}const qn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,s)=>[null,d(Kn,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,s,i,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new h.ModelPath(o.getModel(),new h.Path(o.getArray(),[t.context])):o,[m,p,f]=c.node.hook(this,u,r,a,s,i,l);if(1===e.length)return[m,p,f];const g=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,v=d("select",{value:c.type,onChange:n=>(n=>{var a;const s=null!=(a=e.find((e=>e.type===n)))?a:c,i=s.node.default(),l=s.change?s.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==i?void 0:i.type)?i.config.feature:i;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},ro(a,g.contextPush(e.type))))));return[m,d(_,null,v,p),f]},list({children:e,config:t},n,o,r,a,s,c){const{expand:u,collapse:m,isToggled:p}=Xn(),[f,v]=g(50),w=n.getContext().join(".");if(Gn.includes(w)){return[d(_,null,[...Array(t.maxLength)].map(((e,t)=>d(ao,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(_,null,[...Array(t.maxLength)].map(((t,i)=>{var l;return e.hook(this,n.modelPush(i),null==(l=null==o?void 0:o[i])?void 0:l.node,r,a,s,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":At(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:we()},...o])}},Fe.plus_circle),d(_,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},g)=>{if(g===f)return d("div",{class:"node node-header"},d("label",null,At(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>v(Math.min(f+50,o.length))},At(r,"entries_hidden.more","50")),d("button",{onClick:()=>v(o.length)},At(r,"entries_hidden.all")));if(g>f)return null;const w=n.push(g).contextPush("entry"),_="object"===e.type(w),y=p(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(ao,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${At(r,"expand")}\n${At(r,"expand_all","Ctrl")}`,onClick:u(h)},Fe.chevron_right),d("label",null,ro(r,w,`${g}`)),d(Zn,{key:h,path:w,value:t,schema:e}));return d(to,l(i({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:s,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(g,0,{id:we(),node:Se(t)}),n.model.set(n,e)}}]}),{ctx:l(i({},c),{index:(0===g?1:0)+(g===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${At(r,"collapse")}\n${At(r,"collapse_all","Ctrl")}`,onClick:m(h)},Fe.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":At(r,"remove"),onClick:()=>w.set(void 0)},Fe.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":At(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[g-1],e[g]]=[e[g],e[g-1]],n.model.set(n,e)},disabled:0===g},Fe.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":At(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[g+1],e[g]]=[e[g],e[g+1]],n.model.set(n,e)},disabled:g===o.length-1},Fe.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":At(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:we()}])}},Fe.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,s,c,u){var m,p,f,g,v;const{expand:w,collapse:y,isToggled:b}=Xn(),x=new h.ModelPath(Un,new h.Path([oo(o.toString())])),k="block_state_map"===(null==(m=n.validation)?void 0:m.validator)?null==c?void 0:c[h.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?h.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,h.StringNode(null,{enum:t})]));return Object.entries(null!=(g=k.properties)?g:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),h.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,s,c,u)}return[null,d(_,null,C.hook(this,x,null!=(v=x.get())?v:"",a,s,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":At(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Fe.plus_circle)),d(_,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var m,p,f,g;const v=o.modelPush(t),_="object"===e.type(v),x=b(t);if(_&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(ao,{lang:a,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${At(a,"expand")}\n${At(a,"expand_all","Ctrl")}`,onClick:w(t)},Fe.chevron_right),d("label",null,t),d(Zn,{key:t,path:v,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(p=null==(m=k.properties)?void 0:m[t])?p:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(g=k.properties)?void 0:g[t].includes(n))&&o.model.errors.add(v,"error.invalid_enum_option",n);return d(to,l(i({key:t,schema:C,path:v,value:n},{lang:a,version:s,states:c,ctx:u}),{label:t}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${At(a,"collapse")}\n${At(a,"collapse_all","Ctrl")}`,onClick:y(t)},Fe.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":At(a,"remove"),onClick:()=>v.set(void 0)},Fe.trashcan))})))]},number:(e,t,n,o,r,a,s)=>[null,d(Qn,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,s,c,u,m){var p;const{expand:f,collapse:g,isToggled:v}=Xn();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&ge(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=lo(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(ht),feature:mt},{context:"feature.decorated"})},s=h.ObjectNode(a,{context:"feature"}),i=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new Nn(s,(e=>{if(e.startsWith(i))return new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new h.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new h.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return lo(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(i)){const o=[];lo(c.data,o);const r=new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(i);return c.set(new h.Path,co(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(i),t=[];lo(c.data,t),t.splice(o,1);const r=co(e,t);return c.set(new h.Path,r,n)}{const r=new h.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new h.ModelPath(e,new h.Path(t.getArray(),["feature"])).push(n)}let w=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(h.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":At(s,"expand"),onClick:t},Fe.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":At(s,"remove"),onClick:e},Fe.trashcan)}const b=r.getContext().join(".");if(Jn.includes(b)||Wn.includes(b)){const e=v(""),t=Wn.includes(b)?e:!e;if(w=d(_,null,d("button",{class:"toggle tooltipped tip-se","aria-label":At(s,t?"collapse":"expand"),onClick:e?g(""):f("")},t?Fe.chevron_down:Fe.chevron_right)),!t)return[w,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(i({},m),{loot:null==a?void 0:a.type}):m,k=d(_,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{const n=o(r,e),l=n.getContext().join(".");if(Bn.includes(l))return null;const[h,m,p]=t.hook(this,n,a[e],s,c,u,x),f="object"===t.type(n)&&Hn.includes(l),g=Rn.includes(l);return f||g?(w=d(_,null,w,d(ao,{lang:s,path:n}),d(so,{lang:s,path:n}),h),y=d(_,null,y,m),f?p:null):d(to,i({key:e,schema:t,path:n,value:a[e]},{lang:s,version:c,states:u,ctx:x}))})));return[w,y,k]},string:(e,t,n,o,r,a,s)=>[null,d(eo,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null]};function Zn({path:e,value:t}){var n,o,r,a,s;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(s=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?s:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const i of Object.values(null!=t?t:{}))if("string"==typeof i)return d("label",null,i.replace(/^minecraft:/,""));return null}function Xn(){const[e,t]=g(new Map),[n,o]=g(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function Kn({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(_,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},At(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},At(o,"true")))}function Qn({path:e,config:t,integer:n,value:o,lang:r}){var a;const s=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(_,null,d("input",{type:"text",value:null!=o?o:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>ye(e.model),class:"tooltipped tip-se","aria-label":At(r,"generate_new_seed")},Fe.sync))}function eo({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:s,states:i}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),m=e.getContext().join("."),p=no(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Fn.includes(m))return d("textarea",{value:null!=r?r:"",onBlur:c});if(no(n)&&!n.additional||Tn.includes(m)){let t=new h.Path([]);return no(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):no(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},At(a,"unset")),u.map((e=>d("option",{value:e},ro(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(no(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=we(),t=p?(e=>fe.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(_,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${s}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":At(a,"follow_reference")},Fe.link_external))}{const t=null==i?void 0:i[h.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const to=re((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:s,ctx:c,actions:u,children:h}){var m;const p=t.type(n),f=t.category(n),g=n.getContext().join("."),[v,w]=Te(),_=l(i({},c),{depth:(null!=(m=c.depth)?m:0)+1});delete _.index;const[y,b,x]=t.hook(qn,n,o,r,a,s,_);return d("div",{class:`node ${p}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(ao,{lang:r,path:n}),d(so,{lang:r,path:n}),h,y,d("label",null,null!=e?e:ro(r,n,`${n.last()}`),v&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(pe,{icon:e.icon,tooltip:At(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:At(r,e.label)))})),d("div",{class:"menu-item"},d(pe,{icon:"clippy",tooltip:At(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(g)}),d("span",null,g)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Le(e.ctx,t.ctx)&&Le(e.value,t.value)));function no(e){return!!(null==e?void 0:e.enum)}function oo(e){var t,n=0;for(t=0;te.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=At(e,r[0].error,...null!=(o=r[0].params)?o:[]);return io("node-error","issue_opened",a)}function so({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=At(e,n);return o===n?null:io("node-help","info",o)}const io=(e,t,n)=>{const[o,r]=Te();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Fe[t],d("span",{class:"icon-popup"},n))};function lo(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:ge(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),lo(null!=(o=e.config.feature)?o:"",t)):e}function co(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:co(e,t)}}}function uo({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=zt();if(!t||!n||"none"===r)return d(_,null);const[a]=ae((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(_,null);const[,s]=g(0);return He(t,(()=>{s((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(Yn,i({},{model:t,lang:r,version:e,blockStates:n})))}function ho({term:e}){const{actualTheme:t}=Dt(),n="light"===t?"-burn":"",o=`https://${location.host}/assets/giscus${n}.css`;return d(se,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:o,lang:"en"})}const mo={system:"device_desktop",dark:"moon",light:"sun"};function po(){const{lang:e,locale:t,changeLanguage:n}=zt(),{theme:o,changeTheme:r}=Dt(),{version:a}=Rt(),{title:s}=Tt(),i=Ce(m());return d("header",null,d("div",{class:"title"},d(ie,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},fo.home),d("h1",null,s),i&&d(Re,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},fe.generators.filter((e=>e.category===(null==i?void 0:i.category)&&vt(a,e.minVersion))).map((e=>d(pe,{label:t(e.id),active:e.id===i.id,onClick:()=>p(xe(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(Re,{icon:"globe",tooltip:t("language")},fe.languages.map((({code:t,name:o})=>d(pe,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(Re,{icon:mo[o],tooltip:t("theme")},Object.entries(mo).map((([e,n])=>d(pe,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},Fe.mark_github)))))}const fo={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function go({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:s,delayedPlay:i}){const{locale:l}=zt(),{version:u}=Rt(),[h,m]=g(!0),[p,v]=g(!1),[w,_]=g(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,s;const i=e[t];_(0===(null!=(a=null==(n=null==i?void 0:i.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(s=null==i?void 0:i.sounds)?s:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,s=t,`${nt(fe.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${s}.ogg`);var a,s;const i=new le.Howl({src:[n],format:["ogg"],volume:r,rate:o});i.on("end",(()=>{v(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&m(!1)};return"loaded"===i.state()?setTimeout((()=>l())):i.on("load",(()=>{l()})),i})),m(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(h||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),v(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{i&&setTimeout((()=>x()),50*n)}),[i]),c((()=>()=>k()),[]);const[C,M]=g(!1),A=f(void 0);return d("div",{class:`sound-config${h?" loading":p?" playing":""}${w?" invalid":""}`},d(pe,{class:"play",icon:w?"alert":h?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":h?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(Ue,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d(Ye,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(qe,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(qe,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(pe,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),M(!0),void 0!==A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{M(!1)}),2e3)}}),d(pe,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{s(),k()}}))}function vo({title:e,desc:t,link:n,icon:o,children:r}){const a=d(_,null,d("div",{class:"tool-head"},o&&fo[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function wo({entries:e,onSelect:t,indent:n}){const o=w((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=w((()=>e.filter((e=>!e.includes("/")))),e),[a,s]=g(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(_o,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void s(new Set(a));var t}}),!a.has(e)&&d(wo,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(_o,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function _o({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Fe[e],t)}function yo({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(bo,i({},e.version)),d(bo,i({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(xo,{label:e,onClick:n?()=>n(e):void 0,active:null==t?void 0:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:ce(e.content)}}))}function bo({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function xo({label:e,active:t,onClick:n}){const o="breaking"===e?5:be(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Fe.alert,e)}function ko({changes:e,defaultOrder:t}){const{locale:n}=zt(),[o,r]=g(""),[a,s]=g([]),i=e=>{a.includes(e)?s(a.filter((t=>t!==e))):s([...a,e])},l=w((()=>{const t=o.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===t.length&&0===a.length?e:null==e?void 0:e.filter((e=>{if(!a.every((t=>e.tags.includes(t))))return!1;const n=e.tags.join(" ")+" "+e.content.toLowerCase();return t.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[e,o,a]),[c,u]=g("desc"===t),h=w((()=>null==l?void 0:l.sort(((e,t)=>c?t.order-e.order:e.order-t.order))),[l,c]);return d(_,null,d("div",{class:"changelog-query"},d(Ue,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:o,onChange:r}),d(pe,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})),a.length>0&&d("div",{class:"changelog-tags"},a.map((e=>d(xo,{label:e,onClick:()=>s(a.filter((t=>t!==e)))})))),d("div",{class:"changelog-list"},void 0===h?d("span",null,n("loading")):0===h.length?d("span",null,n("changelog.no_results")):h.map((e=>d(yo,{change:e,activeTags:a,toggleTag:i})))))}function Co({version:e}){const{locale:t}=zt(),[n,o]=g("changelog"),[r,a]=g(void 0);c((()=>{Qe().then((e=>a(e.map((e=>l(i({},e),{tags:e.tags.filter((t=>t!==e.group.id))})))))).catch((e=>console.error(e)))}),[]);const s=w((()=>null==r?void 0:r.filter((t=>t.version.id===e.id||t.group.id===e.id))),[e.id,r]);return d(_,null,d("div",{class:"version-detail"},d("h2",null,e.name),d("div",{class:"version-info"},d(zo,{label:t("versions.released"),value:Mo(e)}),d(zo,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),d(zo,{label:t("versions.data_version"),value:e.data_version}),d(zo,{label:t("versions.protocol_version"),value:e.protocol_version}),d(zo,{label:t("versions.data_pack_format"),value:e.data_pack_version}),d(zo,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),d("div",{class:"version-tabs"},d("span",{class:"changelog"===n?"selected":"",onClick:()=>o("changelog")},t("versions.technical_changes")),d("span",{class:"discussion"===n?"selected":"",onClick:()=>o("discussion")},t("versions.discussion"))),d("div",{class:"version-tab"},"changelog"===n&&d(ko,{changes:s,defaultOrder:"asc"}),"discussion"===n&&d(ho,{term:`version/${e.id}`}))))}function Mo(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function Ao({version:e,link:t}){const{locale:n}=zt();return d("a",{class:"version-entry",href:t},d("span",{class:"version-id"},e.id),d(zo,{label:n("versions.released"),value:Mo(e),compact:!0}),d(zo,{label:n("versions.data_version"),value:e.data_version,optional:!0}),d(zo,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function Io({versions:e,link:t}){const{locale:n}=zt(),[o,r]=g(!0),[a,s]=g(""),i=w((()=>e.filter((e=>!("snapshot"===e.type&&!o)&&e.id.includes(a)))),[e,o,a]);return d(_,null,d("div",{class:"versions-controls"},d(Ue,{class:"btn btn-input version-search",list:"sound-list",placeholder:n("versions.search"),value:a,onChange:s}),d(We,{label:"Include snapshots",value:o,onChange:r})),d("div",{class:"version-list"},i.map((e=>d(Ao,{version:e,link:null==t?void 0:t(e.id)}))),0===i.length&&d("span",null,n("versions.no_results"))))}function zo({label:e,value:t,link:n,compact:o,optional:r}){return d("div",{class:"version-metadata"+(r?" version-metadata-hide":"")},d("span",{class:o?"version-metadata-hide":void 0},e,": "),d("span",{class:"version-metadata-value"},t),n&&d("a",{href:n,class:"version-metadata-link"},Fe.link_external))}function jo({category:e}){const{locale:t}=zt();return Tt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},fe.generators.filter((t=>t.category===e)).map((e=>d(vo,{title:t(e.id),link:xe(e.url)})))))}function Eo({}){const{locale:e}=zt(),[t,n]=g(null);Tt(e("title.changelog"));const[o,r]=g([]);return c((()=>{Qe().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]),d("main",null,d(me,{type:"text",id:"changelog"}),t&&d(Ge,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog"},d(ko,{changes:o,defaultOrder:"desc"})))}function $o({}){var e;const{locale:t}=zt(),{version:n,changeVersion:o}=Rt(),{project:r,file:a,updateFile:s,openFile:u,closeFile:f}=Ot(),[v,w]=g(null),[y,b]=ae();if(y)return y.message=`Something went wrong rendering the generator: ${y.message}`,d("main",null,d(Ge,{error:y,onDismiss:b}));const x=Ce(m());if(!x)return d("main",null,d(Ge,{error:`Cannot find generator "${m()}"`}));const k=fe.versions.filter((e=>vt(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));Tt(t("title.generator",t(x.id)),k),vt(n,x.minVersion)||w(`The minimum version for this generator is ${x.minVersion}`),vt(n,void 0,x.maxVersion)||w(`This generator is not available in versions above ${x.maxVersion}`);const C=Me(m()).get("preset");c((()=>{M&&C&&R(C).then((e=>{null==M||M.reset(h.DataModel.wrapLists(e),!1),Ae({version:n,preset:C})}))}),[C]);const[M,A]=g(null),[I,z]=g(null);c((()=>{w(null),A(null),async function(e){return(await gt(e)).blockStates}(n).then((e=>z(e))),async function(e,t){var n;if(!dt[t]||dt[t].version!==e){const r=await gt(e);ht=h.Reference(r.schemas,"configured_decorator"),mt=h.ChoiceNode([{type:"string",node:h.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:h.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=fe.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new h.DataModel(n,{wrapLists:!0});dt[t]?o.reset(dt[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),dt[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${Oe(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return dt[t].model}(n,x.id).then((async e=>{if(he.setGenerator(x.id),C){const t=await R(C);e.reset(h.DataModel.wrapLists(t),!1)}A(e)})).catch((e=>{console.error(e),w(e)}))}),[n,x.id]);const[j,E]=g(!1);He(M,(()=>{Ae({version:void 0,preset:void 0}),w(null),E(!0)}));const[$,O]=g(""),[S,L]=Ve(),[P,D]=Ve(),V=()=>{if($!==(null==a?void 0:a.id)&&$&&M&&I){const e=Sn(M,I);s(x.id,null==a?void 0:a.id,{id:$,data:e})?L():(D(),a&&O(null==a?void 0:a.id))}else a&&O(null==a?void 0:a.id)};c((()=>{a&&O(a.id)}),[a]),c((()=>{var e;M&&(O(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type&&M.reset(h.DataModel.wrapLists(a.data)),E(!1))}),[a,M]);const N=e=>{e.ctrlKey&&"z"===e.key?(he.generatorEvent("undo","Hotkey"),null==M||M.undo()):e.ctrlKey&&"y"===e.key&&(he.generatorEvent("redo","Hotkey"),null==M||M.redo())},T=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),M&&I&&a)){he.generatorEvent("save","Hotkey");const e=Sn(M,I);s(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),L()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",T),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",T)})),[M,I,a]);const[B,H]=g([]);c((()=>{(async function(e){const t=await gt(e);return pt=t.collections,t.collections})(n).then((e=>{H(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),w(e)}))}),[n,x.id]);const R=async e=>{var t,o,r;try{const a=await st(n,null!=(t=x.path)?t:x.id,e),s=null==M?void 0:M.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==s&&(a.generator.seed=s,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=s)),a}catch(a){w(a instanceof Error?a:Oe(a))}},[F,G]=g(window.innerWidth>820),[W,J]=g(0),[U,Y]=g(0),[q,Z]=g(0),[X,K]=Ve(),[Q,ee]=g(!1),te=$n.includes(x.id)&&!("worldgen/configured_feature"===x.id&&vt(n,"1.18"));Q&&!te&&ee(!1);let ne=1;te&&(ne+=1),F&&(ne+=2);return d(_,null,d("main",{class:Q?"has-preview":""},d(me,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(Re,{icon:"repo",label:r.name,relative:!1},d(pe,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>p("/project")}),a&&d(pe,{icon:"file",label:t("project.new_file"),onClick:f}),d(Ze,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d(Ue,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:$,onChange:O,onEnter:V,onBlur:V}),a&&d(pe,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&s(x.id,a.id,{})}})),j?d("div",{class:"status-icon"},Fe.dot_fill):S?d("div",{class:"status-icon active"},Fe.check):P&&d("div",{class:"status-icon danger"},Fe.x)),d("div",{class:"generator-controls"},d(pe,{icon:"upload",label:t("import"),onClick:()=>{he.generatorEvent("import"),G(!0),Z(q+1)}}),d(Re,{icon:"archive",label:t("presets"),relative:!1},d(Ze,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:B,onSelect:e=>{he.generatorEvent("load-preset",e),Ae({version:n,preset:e})}})),d(Re,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(pe,{label:e,active:e===n,onClick:()=>o(e)})))),d(Re,{icon:"kebab_horizontal",tooltip:t("more")},d(pe,{icon:"history",label:t("reset"),onClick:()=>{he.generatorEvent("reset"),null==M||M.reset(h.DataModel.wrapLists(M.schema.default()),!0)}}),d(pe,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),he.generatorEvent("undo","Menu"),null==M||M.undo()}}),d(pe,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),he.generatorEvent("redo","Menu"),null==M||M.redo()}})))),v&&d(Ge,{error:v,onDismiss:()=>w(null)}),d(uo,l(i({},{model:M,version:n,blockStates:I}),{onError:w}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ne}px;`},d("div",{class:`popup-action action-preview${te?" shown":""} tooltipped tip-nw`,"aria-label":t(Q?"hide_preview":"show_preview"),onClick:()=>{he.generatorEvent("toggle-preview",Q?"hidden":"visible"),ee(!Q),!Q&&F&&G(!1)}},Q?Fe.x_circle:Fe.play),d("div",{class:`popup-action action-download${F?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{he.generatorEvent("download"),Y(U+1)}},Fe.download),d("div",{class:`popup-action action-copy${F?" shown":""}${X?" active":""} tooltipped tip-nw`,"aria-label":t(X?"copied":"copy"),onClick:()=>{he.generatorEvent("copy"),J(W+1)}},X?Fe.check:Fe.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(F?"hide_output":"show_output"),onClick:()=>{he.generatorEvent("toggle-output",F?"hidden":"visible"),G(!F),J(0),Y(0),Z(0)}},F?Fe.chevron_right:Fe.code)),d("div",{class:"popup-preview"+(Q?" shown":"")},d(On,l(i({},{model:M,version:n,id:x.id}),{shown:Q,onError:w}))),d("div",{class:"popup-source"+(F?" shown":"")},d(Vn,l(i({},{model:M,blockStates:I,doCopy:W,doDownload:U,doImport:q}),{name:null!=(e=x.schema)?e:"data",copySuccess:K,onError:w}))))}function Oo({}){const{locale:e}=zt();return Tt(e("title.home")),d("main",null,d("div",{class:"home"},d(vo,{title:"Data packs"},fe.generators.filter((e=>!e.category)).map((t=>d(vo,{title:e(t.id),link:xe(t.url)}))),d(vo,{title:e("worldgen"),link:"/worldgen/"})),d(vo,{title:"Resource packs"},fe.generators.filter((e=>"assets"===e.category)).map((t=>d(vo,{title:e(t.id),link:xe(t.url)})))),d(vo,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(vo,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(vo,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(vo,{title:"Technical Changelog",link:"/changelog/"}),d(vo,{title:"Minecraft Versions",link:"/versions/"}),d(ho,null)))}function So({}){const{locale:e}=zt(),{project:t,openFile:n}=Ot();Tt(e("title.project",t.name));const o=w((()=>t.files.map(Lt)),t.files);return d("main",null,d(me,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(wo,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function Lo({}){const{locale:e}=zt(),{version:t,changeVersion:n}=Rt(),[o,r]=g(null);Tt(e("title.sounds"));const[a,s]=g({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=fe.versions.find((t=>t.id===e));await ot(t);try{const e=`${nt(t,"summary")}/sounds/data.min.json`;return await it(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Oe(n)}`)}})(t).then(s).catch((e=>{console.error(e),r(e)}))}),[t]);const[h,m]=g(""),[p,v]=g([]),w=()=>{v([{id:we(),sound:h,delay:0,pitch:1,volume:1},...p])},y=e=>()=>{v(p.filter((t=>t.id!==e)))},[b,x]=g(0),k=f(null);return d("main",null,o&&d(Ge,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(_,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(Ue,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:m,onEnter:w}),d(pe,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:w})),p.length>1&&d(pe,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(pe,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=p.some((e=>e.delay>0)),t=p.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(Re,{icon:"tag",label:t},fe.versions.reverse().map((e=>d(pe,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},p.map((e=>{return d(go,l(i(i({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{v(p.map((n=>n.id===t?i(i({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},u.map((e=>d("option",{key:e,value:e})))))}function Po({}){const{locale:e}=zt(),[t,n]=g(null);Tt(e("title.versions"));const[o,r]=g([]);c((()=>{(async function(){const e=fe.versions[fe.versions.length-1];await ot(e);try{return it(`${nt(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${Oe(t)}`)}})().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const a=Me(m()).get("id"),s=o.find((e=>e.id===a));Tt(s?s.name:"Versions Explorer",s?[]:void 0);const l=s&&Do(o,s,-1),u=s&&Do(o,s,1);return d("main",null,d(me,{type:"text",id:"versions"}),t&&d(Ge,{error:t,onDismiss:()=>n(null)}),d("div",{class:"versions"},s?d(_,null,d("div",{class:"version-navigation"},d("a",{class:"btn btn-link",href:"/versions/"},Fe.three_bars,e("versions.all")),d("a",i({class:"btn btn-link"},u?{href:`/versions/?id=${u.id}`}:{disabled:!0}),Fe.arrow_left,e("versions.previous")),d("a",i({class:"btn btn-link"},l?{href:`/versions/?id=${l.id}`}:{disabled:!0}),e("versions.next"),Fe.arrow_right)),d(Co,{version:s})):d(Io,{versions:o,link:e=>`/versions/?id=${e}`})))}function Do(e,t,n){const o=e.findIndex((e=>e.id===t.id))+n;if(!(o<0||o>=e.length))return e[o]}function Vo(){return d(_,null,d(po,null),d(de,{onChange:e=>{setTimeout((()=>he.pageview(xe(e.url))))}},d(Oo,{path:"/"}),d(jo,{path:"/worldgen",category:"worldgen"}),d(jo,{path:"/assets",category:"assets"}),d(Lo,{path:"/sounds"}),d(Eo,{path:"/changelog"}),d(Po,{path:"/versions"}),d(So,{path:"/project"}),d($o,{default:!0})))}function No(){return d(jt,null,d(Vt,null,d(Ft,null,d(Bt,null,d(St,null,d(Vo,null))))))}ue(d(No,null),document.body); +//# sourceMappingURL=index.55e505ff.js.map diff --git a/assets/index.55e505ff.js.map b/assets/index.55e505ff.js.map new file mode 100644 index 00000000..a0503e85 --- /dev/null +++ b/assets/index.55e505ff.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.55e505ff.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Giscus.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn
\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn
\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t
\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map()\n}\n\nexport function setSeachParams(modifications: Record, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap {\n\tprivate readonly forward: Map\n\tprivate readonly backward: Map\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn
e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t\t{dataList && \n\t\t\t{dataList.map(e => }\n\t
\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise,\n\tonDrag?: (dx: number, dy: number) => Promise,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef(null)\n\n\tconst dragStart = useRef()\n\tconst dragRequest = useRef()\n\tconst dragPending = useRef([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
\n\t\t\n\t\t{active &&
\n\t\t\t{children}\n\t\t
}\n\t
\n}\n","export const Octicon = {\n\talert: ,\n\tarchive: ,\n\tarrow_left: ,\n\tarrow_right: ,\n\tcheck: ,\n\tchevron_down: ,\n\tchevron_right: ,\n\tchevron_up: ,\n\tclippy: ,\n\tcode: ,\n\tdash: ,\n\tdevice_desktop: ,\n\tdot_fill: ,\n\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tfile: ,\n\tfile_directory: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tlink_external: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\trepo: ,\n\tsearch: ,\n\tsort_asc: ,\n\tsort_desc: ,\n\tsquare: ,\n\tsquare_fill: ,\n\tstack: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tterminal: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t}\n\t\t

\n\t\t{stack && stackVisible &&
{stack}
}\n\t\t

If you think this is a bug, you can report it on GitHub

\n\t
\n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn \n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes\n\ntype BaseInputProps = Omit & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn \n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t\n\t\t
\n\t\t\t{results.map(v => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && }\n\t\t
\n\t\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type Change = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: Change[] | Promise | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core';\nimport config from '../../config.json';\nimport { message } from '../Utils';\nimport type { BlockStateRegistry, VersionId } from './Schemas';\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nasync function getData(url: string, fn: (v: any) => T = (v: any) => v): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport * as java182 from '@mcschema/java-1.18.2'\nimport * as java19 from '@mcschema/java-1.19'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n\t'1.18.2': java182,\n\t1.19: java19,\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18.2'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome.toString(), options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz).toString(),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(Identifier.parse(state.biome as string))\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn Identifier.parse(state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (checkVersion(options.version, '1.18')) {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn Identifier.parse(BiomeIds.getA(ids[0]) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => Identifier.parse(BiomeIds.getA(id) ?? 'unknown'))\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Identifier.parse(minBiome)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome?: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk, true)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { NoiseGeneratorSettings } from 'deepslate'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tawait noiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport brace from 'brace'\nimport 'brace/mode/json'\nimport 'brace/mode/yaml'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\tbraceEditor.setOptions({\n\t\t\t\tfontSize: 14,\n\t\t\t\tshowFoldWidgets: false,\n\t\t\t\thighlightSelectedWord: false,\n\t\t\t})\n\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t},\n\t\t\t\tsetValue(value) {\n\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t},\n\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t},\n\t\t\t\tselect() {\n\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\teditor.current.configure(indent, format)\n\t\tretransform.current()\n\t}, [indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `https://${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span>{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span>{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" list=\"sound-list\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSeachParams({ version, preset: currentPreset })\n\t\t\t})\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id })\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(e instanceof Error ? e : message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<Giscus />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import { getCurrentUrl } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\nimport { getSearchParams } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst selectedId = getSearchParams(getCurrentUrl()).get('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selected ? <>\n\t\t\t\t<div class=\"version-navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<VersionDetail version={selected} />\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","value","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","setPrefersColorScheme","colorScheme","generatorEvent","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","model","seed","dimensions","get","Path","set","keys","forEach","s2","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","split","map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","key","delete","search","encodeURIComponent","str","abs","hashString","a2","b2","c","max","min","lerp","e","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","[object Object]","forward","backward","this","defaultValue","large","larger","doSelect","placeholder","dataList","onChange","onInput","value2","target","ref","useRef","current","select","dataListId","hexId","stopPropagation","list","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","hider","query","prefers","setPrefers","matchMedia","matches","mediaQuery","invalidated","listener","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","sort_asc","sort_desc","square","square_fill","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","stackVisible","setStackVisible","setStack","stack2","line","mapped","mappedStack","useMemo","url2","name","href","checked","component","evt","fn","onKeyDown","onEnter","displayName","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","terms","trim","filter","every","includes","t","BtnInput","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","getItem","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","data","getData","mcmeta","register","properties","default","versionId","registry","versions","cacheResponse","ok","fetchResponse","responseData","put","Response","JSON","stringify","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","1.18.2","java182","1.19","java19","CachedDecorator","CachedFeature","CachedCollections","scriptRel","collections","getCollections","blockStates","collectionTarget","blockStateTarget","validateCache","fetchRegistries","fetchBlockStateMap","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getHighlighting","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setHighlighting","highlighting","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","actualTheme","changeTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","FixedBiome","Identifier","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","checkVersion","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","climate","climate_noise","w","result","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","create","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:deepslate","minecraft:bedrock","minecraft:grass_block","minecraft:dirt","minecraft:gravel","minecraft:sand","minecraft:sandstone","minecraft:netherrack","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:basalt","minecraft:end_stone","generatorCache","chunkCache","registryCache","initRegistries","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","XoroshiroRandom","forkPositional","NoiseSettings","min_y","terrain_shaper","originalFn","DensityFunction","mapAll","NoiseRouter","Visitor","createDensityFunction","density","compute","clampedMap","Registries","NoiseParameters","rootRegistries","Registry","root","fetchAllPresets","fetchRegistry","DENSITY_FUNCTION","clear","assign","getOrThrow","NOISE","minX","done","chunks","cached","Chunk","ChunkPos","Z","forcedBiome","chunk","buildSurface","chunkIndex","BiomeSourcePreview","shown","setScale","focused","setFocused","layers","setLayers","Set","refineTimeout","legacyRandomSource","getOctaves","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimates","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","getClimate","changeScale","newScale","BtnMenu","enabled","newSeed","k","toUpperCase","toFixed","DecoratorPreview","setSeed","randomSeed","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldY","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","noiseSettings","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","allBiomes","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","onImport","textarea","editor","getSerializedOutput","model2","blockStates2","getOutput","output","setValue","getValue","wrapLists","braceEditor","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","indent2","format2","setOption","selectAll","configure","clipboard","writeText","click","data-cy","changeIndent","changeFormat","changeHighlighting","spellcheck","autocorrect","onBlur","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","expanded","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","term","useTheme","themeSuffix","themeUrl","location","host","GiscusReact","repoId","categoryId","mapping","reactionsEnabled","emitMetadata","inputPosition","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","completed","copyActive","setCopyActive","copyTimeout","step","desc","roots","groups","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","activeTags","toggleTag","ArticleLink","ChangelogTag","dangerouslySetInnerHTML","__html","marked","changes","defaultOrder","setTags","filteredChangelogs","q2","toLowerCase","sort","setSort","sortedChangelogs","ChangelogEntry","tab","setTab","changelogs","setChangelogs","changelogs2","catch","console","VersionMetaData","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","ChangelogList","Giscus","Date","release_time","toLocaleDateString","day","month","year","compact","snapshots","setSnapshots","filteredVersions","Checkbox","VersionEntry","ToolCard","setError","Ad","ErrorPanel","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","setVersions","versions2","selectedId","selected","nextVersion","getOffsetVersion","previousVersion","VersionDetail","VersionList","offsetIndex","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"60BAAiBA,gBCQEC,KAAEA,KAAMC,cAChB,6BACAC,eAAe,sBAAmBC,SACvC,eAAgBC,mBACRC,SAEV,MAEK,MAAD,CAAKC,oBAAkB,mBAAmBC,eAAcP,EAAMQ,MAAM,eAAeP,GAAAA,iBCLvEQ,KAAEA,QAAMC,SAAOC,EAAQH,MAAOI,UAAOC,aAASC,UAAYC,aACrE,MAAD,CAAKP,MAAO,MAAMG,EAAS,UAAY,KAAKC,EAAQ,IAAIA,IAAU,KAAKC,EAAU,yBAAmBC,IAAc,OAAS,KAAMC,QAAAA,EAAkBC,aAAYH,GACpKJ,GAAQQ,GAAQR,GAChBC,KAAU,OAAD,KAAOA,cFdFQ,SACVC,EAAU,OACVC,EAAe,uBASNC,EAAkBC,EAAgBZ,MAC7C,OAAQ,QAASW,EAAUC,EAAQZ,cAGpBa,EAAeC,MAC9B,MAAO,YAAYD,IAASC,KAGhBC,kBAASC,MACrB,MAAO,OAAQA,MACf,OAAQ,eAGIC,qBAAYC,KAlBP,EAmBIA,KAClBT,EAAS,eAAgBS,MAGhBC,kBAASC,KAzBP,EA0BIA,KACfX,EAAS,YAAaW,MAGbC,oBAAWC,KA7BP,EA8BIA,KACjBZ,EAAc,cAAeY,MAGpBC,oBAAWC,KAhCP,EAiCIA,KACjBd,EAAc,cAAec,MAGpBC,sBAAaC,KApCP,EAqCIA,MAGVC,+BAAsBC,KAvCL,EAwCIA,MAGrBC,wBAAejB,EAAgBZ,KACxCU,EAAcE,EAAQZ,KArDbX,ilHGUQyC,SACF,iBAARA,GAA4B,OAARA,EAGnC,MAAMC,GAAWC,QAAuBA,EAAIC,SAAS,KAAKC,uBAEpCC,EAAS,QAC1BC,EAAM,IAAIC,WAAWF,EAAS,iBAC3BG,OAAOC,gBAAgBH,GACvBI,MAAMC,KAAKL,EAAKL,IAASW,KAAK,yBAI9BC,OAAOC,KAAKC,MAAMD,KAAKE,SAAWC,OAAOC,+BAGzBC,SACjBC,EAAON,KAAKC,MAAuB,WAAjBD,KAAKE,UAA2B,WAClDK,EAAaF,EAAMG,IAAI,IAAIC,OAAK,CAAC,kBACjCC,IAAI,IAAID,OAAK,CAAC,SAAUH,GAAM,GACV,iBAAfC,GAA0C,OAAfA,UAC9BI,KAAKJ,GAAYK,eACjBF,IAAI,IAAID,OAAK,CAAC,aAAc9D,EAAI,YAAa,SAAU2D,GAAM,KAC7DI,IAAI,IAAID,OAAK,CAAC,aAAc9D,EAAI,YAAa,eAAgB,SAAU2D,GAAM,QAG/EI,IAAI,IAAID,OAAK,CAAC,YAAa,SAAUH,GAAM,KAC3CI,IAAI,IAAID,OAAK,CAAC,YAAa,eAAgB,SAAUH,eAQjCO,OACtBC,EAAI,UACAC,EAAI,EAAGA,EAAIF,EAAEtB,OAAQwB,MACxBf,KAAKgB,KAAK,GAAIF,GAAKD,EAAEI,WAAWF,GAAK,SACnCD,cAGiBI,SACjB,IAAIA,KAAOC,WAAW,KAAM,iBAGZD,SACjBE,EAAcF,EAAIG,QAAQ,YAC5BD,GAAe,MACZF,EAAII,MAAM,EAAGF,IAEbG,GAASL,eAGYA,SACtBM,EAAaC,GAAQP,GAAKQ,QAAQ,MAAO,IAAIA,QAAQ,MAAO,WAC3DC,GAAOC,WAAWC,SAAUC,EAAEZ,MAAQM,gBAGdN,SACzBE,EAAcF,EAAIG,QAAQ,YAC5BD,GAAe,KACZF,EAAII,MAAMF,EAAc,GACvB,IAAIW,IAAIb,EAAIc,MAAM,KAAKC,eACvBhE,EAAQiE,EAAMb,QAAQ,gBACxBpD,EAAqB,CAACiE,EAAO,QAC1B,CAACC,mBAAmBD,EAAMZ,MAAM,EAAGrD,IAASkE,mBAAmBD,EAAMZ,MAAMrD,EAAQ,UAGrF,IAAI8D,gBAGmBK,EAAmDC,SAC3EnB,EAAMoB,IACNC,EAAeC,GAAgBtB,UAC9BuB,QAAQL,GAAexB,SAAQ,EAAE8B,EAAKxE,WAC9B,IAAVA,IAAkCyE,OAAOD,KAC3BhC,IAAIgC,EAAKxE,YAEtB0E,EAAShD,MAAMC,KAAK0C,GAAcN,KAAI,EAAES,EAAKxE,KAClD,GAAG2E,mBAAmBH,MAAQG,mBAAmB3E,SAC5C,GAAGmE,EAAUd,GAASc,GAAWZ,GAAQP,KAAyB,IAAlB0B,EAAOrD,OAAe,GAAK,IAAIqD,EAAO9C,KAAK,UAAU,eAG9EgD,SACvBhC,EAAId,KAAK+C,IAAIC,GAAWF,UACvB,CAAChC,EAAI,QAAW,GAAK,QAAW,IAAM,iBAGvBmC,UACfA,EAAIA,cAGUA,EAAWC,EAAWC,UACpCnD,KAAKoD,IAAIH,EAAGjD,KAAKqD,IAAIH,EAAGC,gBAGJF,EAAWC,EAAWC,UAC7CA,EAAI,EACAF,EACGE,EAAI,EACPD,EAEAI,GAAKH,EAAGF,EAAGC,eAICD,EAAWC,EAAWC,UACnCD,EAAID,KAASC,eAeGK,UACnBA,aAAaC,MAAcD,EAAEE,QAC1B,GAAGF,UAGEG,GAAYC,gBASCV,EAAQC,MAC7BD,IAAMC,SAAU,KAEhBD,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,IACvDD,EAAEW,cAAgBV,EAAEU,mBAAoB,MACxCrE,EAAQwB,KACRnB,MAAMiE,QAAQZ,GAAI,MACZA,EAAE1D,OACPA,GAAU2D,EAAE3D,cAAe,MAC1BwB,EAAI,EAAGA,EAAIxB,EAAQwB,QAClB+C,GAAUb,EAAElC,GAAImC,EAAEnC,WAAY,SAE7B,KAEJkC,EAAEc,UAAYC,OAAOC,UAAUF,eAAgBd,EAAEc,YAAcb,EAAEa,aACjEd,EAAE5D,WAAa2E,OAAOC,UAAU5E,gBAAiB4D,EAAE5D,aAAe6D,EAAE7D,iBAClEsB,EAAOqD,OAAOrD,KAAKsC,QAChBtC,EAAKpB,OACVA,IAAWyE,OAAOrD,KAAKuC,GAAG3D,cAAe,MACxCwB,EAAIxB,EAAgB,GAARwB,SACXiD,OAAOC,UAAUC,eAAeC,KAAKjB,EAAGvC,EAAKI,WAAY,MAC1DA,EAAIxB,EAAgB,GAARwB,KAAY,OACtB2B,EAAM/B,EAAKI,OACZ+C,GAAUb,EAAEP,GAAMQ,EAAER,WAAc,SAEjC,SAEDO,GAAMA,GAAKC,GAAMA,WAOxBkB,mBACMC,QAAU,IAAItC,SACduC,SAAW,IAAIvC,IAGdqC,IAAInB,EAAMC,QACXmB,QAAQ3D,IAAIuC,EAAGC,QACfoB,SAAS5D,IAAIwC,EAAGD,GAGfmB,KAAK1B,UACJ6B,KAAKD,SAAS9D,IAAIkC,GAGnB0B,KAAK1B,UACJ6B,KAAKF,QAAQ7D,IAAIkC,GAGlB0B,SAAS1B,EAAQ8B,SACjBtB,EAAIqB,KAAKF,QAAQ7D,IAAIkC,eACjB,IAANQ,QACExC,IAAIgC,EAAK8B,GACPA,GAEDtB,gBC9LgB/F,KAAEA,QAAMC,QAAOqH,SAAOC,WAAQC,QAAUzG,cAAO0G,WAAaC,WAAUC,UACxFC,OAAuB,IAAbD,EAAyB,OAAYvB,UAC9CyB,EAASzB,EAAE0B,OAA4B/G,iBAClC8G,IAGNE,EAAMC,EAAyB,SAC3B,KACLR,GAAYO,EAAIE,WACfA,QAAQC,WAEX,CAACV,UAEEW,EAAaT,GAAYU,cAEvB,MAAD,CAAKrI,MAAO,iBAAiBuH,EAAQ,cAAgB,MAAMC,EAAS,eAAiB,KAAMjH,WAAc8F,EAAEiC,mBAChHrI,GAAQQ,GAAQR,GAChBC,KAAU,OAAD,KAAOA,KAChB,QAAD,CAAO8H,IAAAA,EAAUxI,KAAK,OAAOwB,MAAAA,EAAc4G,SAAUC,EAASH,YAAAA,EAA0Ba,KAAMH,IAC7FT,KAAa,WAAD,CAAUlI,GAAI2I,GACzBT,EAAS5C,UAAU,SAAD,CAAQ/D,MAAOqF,qBC5BJmC,SAAEA,SAAUC,UAAQC,GAAkC,UAC/EvI,EAAQwI,GAAaC,EAASF,GAC/BG,EAAUZ,OAA2B,SAUpC,CAAC9H,EARQ,QACLsI,QACc,IAApBI,EAAQX,sBAAoCW,EAAQX,WAChDA,QAAUY,YAAW,SAClBL,WACRD,IAAY,oBCXSO,KAAEA,OAAMC,SAAMC,UAAQC,UAASC,GAMtDC,SACIC,EAASpB,EAA0B,MAEnCqB,EAAYrB,IACZsB,EAActB,IACduB,EAAcvB,EAAa,CAAC,EAAG,IAC/BwB,EAAWxB,GAAO,MAEd,WACHyB,EAAerD,MACV6B,QAAU,CAAC7B,EAAEsD,QAAStD,EAAEuD,UAE7BC,EAAexD,YACM,IAAtBiD,EAAUpB,QAAuB,OAC9B4B,EAAIzD,EAAEsD,QAAWN,EAAOnB,QAAQ6B,YAChCC,EAAI3D,EAAEuD,QAAWP,EAAOnB,QAAQ+B,oCAC5BH,EAAGE,QAGTf,eACCiB,EAAK7D,EAAEsD,QAAUL,EAAUpB,QAAQ,GACnCiC,EAAK9D,EAAEuD,QAAUN,EAAUpB,QAAQ,GAC5B,OAAY,IAAPiC,MACLjC,QAAU,CAACsB,EAAYtB,QAAQ,GAAKgC,EAAIV,EAAYtB,QAAQ,GAAKiC,GACxEV,EAASvB,+BACQqB,EAAYrB,WACrBA,QAAUkC,uBAAsBC,YAClCnC,SAAU,QACboC,EAAKd,EAAYtB,QAAQ,GAAKmB,EAAOnB,QAAQ6B,YAC7CQ,EAAKf,EAAYtB,QAAQ,GAAKmB,EAAOnB,QAAQ+B,eACvC/B,QAAU,CAAC,EAAG,0BACXoC,EAAIC,MACVrC,SAAU,SAIZA,QAAU,CAAC7B,EAAEsD,QAAStD,EAAEuD,UAE7BY,EAAY,OACPtC,aAAU,GAEfuC,EAAe,4BAIdvC,QAAQwC,iBAAiB,YAAahB,KACtCxB,QAAQwC,iBAAiB,YAAab,KACtC3B,QAAQwC,iBAAiB,aAAcD,YACrCE,KAAKD,iBAAiB,UAAWF,GAEnC,0BACCtC,YAAS0C,oBAAoB,YAAalB,cAC1CxB,YAAS0C,oBAAoB,YAAaf,cAC1C3B,YAAS0C,oBAAoB,aAAcH,YACzCE,KAAKC,oBAAoB,UAAWJ,MAE5C,UAAIpB,IAAU,GAAIC,EAAOnB,gBAEtB2C,EAAS5C,IACT6C,EAAc7C,EAAO,YACpBC,QAAUmC,gBACVU,EAAM1B,EAAOnB,QAAQ8C,WAAW,MAChCrH,EAAIoF,MACHb,QAAQ+C,MAAQtH,EAAE,KAClBuE,QAAQgD,OAASvH,EAAE,SACpBwH,EAAMJ,EAAIK,aAAa,EAAG,EAAGzH,EAAE,GAAIA,EAAE,IACrC0H,EAAWP,EAAY5C,SAAW,YAEjCc,EAAKmC,SACH9E,SACFA,EAEHgF,IAAaP,EAAY5C,WACxBoD,aAAaH,EAAK,EAAG,IAIpB,CACN9B,OAAAA,EACAwB,OAAQA,EAAO3C,6BCvFT/H,EAAQwI,GAAaC,GAAS,GAE/B2C,EAAQ,QACH,cAGD,KACLpL,aACMwK,KAAKD,iBAAiB,QAASa,YAC/BZ,KAAKD,iBAAiB,cAAea,IAExC,cACGZ,KAAKC,oBAAoB,QAASW,YAClCZ,KAAKC,oBAAoB,cAAeW,MAEhD,CAACpL,IAEG,CAACA,EAAQ,IAAMwI,GAAU,gBClBH6C,SACtBC,EAASC,GAAc9C,EAAS+C,WAAWH,GAAOI,SAEnDhE,EAAYvB,MACNA,EAAEuF,oBAGJ,WACHC,EAAaF,WAAWH,YACnBd,iBAAiB,SAAU9C,GAC/B,OACKgD,oBAAoB,SAAUhD,MAExC,CAAC4D,IAEGC,cCdiBtI,EAAqC2I,SACvDC,EAAW,CAChB7E,cACK/D,KACSA,QAKL,gBACF6I,YAAYD,GACZ,gBACCE,eAAeF,MAErB,CAAC5I,gBCJmB+I,SACjBjM,KAAEA,QAAMC,WAAOiM,UAAU9L,aAASC,WAAY8L,GAAaF,GAC1D/L,EAAQwI,GAAa0D,cAEpB,MAADC,GAAKtM,MAAO,aAAwB,IAAbmM,EAAqB,eAAiB,KAAUD,KAC5EK,GAADC,OAAS,CAACvM,KAAAA,EAAMC,MAAAA,EAAOG,QAAAA,EAASC,WAAAA,IAAhC,CAA6CC,QAASoI,KACrDxI,KAAW,MAAD,CAAKH,MAAM,aACpBoM,cCnBHK,QAAQ,MAAD,CAAKC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,8TACtHC,UAAU,MAAD,CAAKJ,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qcACxHE,aAAa,MAAD,CAAKL,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,8JAC3HG,cAAc,MAAD,CAAKN,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,iKAC5HI,QAAQ,MAAD,CAAKP,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qIACtHK,eAAe,MAAD,CAAKR,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,oIAC7HM,gBAAgB,MAAD,CAAKT,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,mIAC9HO,aAAa,MAAD,CAAKV,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,mIAC3HQ,SAAS,MAAD,CAAKX,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,gYACvHS,OAAO,MAAD,CAAKZ,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,+NACrHU,OAAO,MAAD,CAAKb,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,wEACrHW,iBAAiB,MAAD,CAAKd,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,kaAC/HY,WAAW,MAAD,CAAKf,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,mCACzHa,WAAW,MAAD,CAAKhB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,wMACzHc,YAAY,MAAD,CAAKjB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM2B,EAAE,2HAA+H,OAAD,CAAMD,YAAU,UAAUC,EAAE,oOAAwO,OAAD,CAAMA,EAAE,mNAC/ee,MAAM,MAAD,CAAKlB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,6nBACpHgB,aAAa,MAAD,CAAKnB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,4xBAC3HiB,OAAO,MAAD,CAAKpB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,0UACrHkB,iBAAiB,MAAD,CAAKrB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,kLAC/HmB,OAAO,MAAD,CAAKtB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qvEACrHoB,QAAQ,MAAD,CAAKvB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,isBACtHqB,UAAU,MAAD,CAAKxB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,ySACxHsB,OAAO,MAAD,CAAKzB,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,uOACrHuB,eAAe,MAAD,CAAK1B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,kKAC7HwB,mBAAmB,MAAD,CAAK3B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM2B,EAAE,wHAC7GyB,OAAO,MAAD,CAAK5B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qWACrH0B,gBAAgB,MAAD,CAAK7B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,uWAC9H2B,cAAc,MAAD,CAAK9B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,8jBAC5H4B,OAAO,MAAD,CAAK/B,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sLACrH6B,OAAO,MAAD,CAAKhC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,kLACrH8B,OAAO,MAAD,CAAKjC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,oIACrH+B,cAAc,MAAD,CAAKlC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,iMAC5HgC,OAAO,MAAD,CAAKnC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,6WACrHnH,SAAS,MAAD,CAAKgH,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sIACvHiC,WAAW,MAAD,CAAKpC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sUACzHkC,YAAY,MAAD,CAAKrC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qNAAyN,OAAD,CAAMA,EAAE,oHAC1VmC,SAAS,MAAD,CAAKtC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,wOACvHoC,cAAc,MAAD,CAAKvC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,4HAC5HqC,QAAQ,MAAD,CAAKxC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,ikBACtHsC,MAAM,MAAD,CAAKzC,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,gtBACpHuC,OAAO,MAAD,CAAK1C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sZACrHwC,MAAM,MAAD,CAAK3C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qWACpHyC,WAAW,MAAD,CAAK5C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,2ZACzH0C,aAAa,MAAD,CAAK7C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sMAC3H2C,WAAW,MAAD,CAAK9C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,sXACzH4C,SAAS,MAAD,CAAK/C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM2B,EAAE,iiBACnG6C,SAAS,MAAD,CAAKhD,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,qMACvH/C,IAAI,MAAD,CAAK4C,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,2LAClH8C,WAAW,MAAD,CAAKjD,MAAM,6BAA6BC,QAAQ,YAAY1B,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAM0B,YAAU,UAAUC,EAAE,+SCzC/F+C,MAAEA,YAAOC,UAC5BC,EAAcC,GAAmBnH,GAAS,IAC1CsG,EAAOc,GAAYpH,OAA6B,MAE7C,QACLgH,aAAiBtJ,MAAO,OACrB2J,EAAQL,EAAMV,MAAOpK,MAAM,MAAMC,QAC/BmL,EAAK1L,QAAQ,kCAAmC,iBAE/CyL,EAAMrN,KAAK,+BACNqN,EAAMrN,KAAK,OAAQuN,UAC1BC,EAAcD,EAAOpL,QACnBmL,EAAK1L,QAAQ,gBAAiB,UACnC5B,KAAK,QACCwN,SAGT,CAACR,UAEE5L,EAAMqM,GAAQ,SACfC,EAAK,+DACLV,aAAiBtJ,UACb,UAAUX,mBAAmB,GAAGiK,EAAMW,SAASX,EAAMrJ,aACxD2I,OACI,SAASvJ,mBAAmB,WAAWiK,EAAMW,SAASX,EAAMrJ,YAAY2I,sBAGzE,UAAUvJ,mBAAmBiK,EAAMzN,cAEpCmO,IACL,CAACV,EAAOV,aAEH,MAAD,CAAKlP,MAAM,SAChB6P,KAAc,MAAD,CAAK7P,MAAM,gBAAgBO,QAASsP,GAAYpP,GAAQqJ,KACrE,KAAD,KACE8F,aAAiBtJ,MAAQsJ,EAAMrJ,QAAUqJ,EACzCV,KAAU,OAAD,CAAM3O,QAAS,IAAMwP,GAAiBD,IAC9CrP,GAAQ0N,OAGVe,GAASY,KAAiB,MAAD,KAAMZ,KAC/B,IAAD,KAAG,mDAA+C,IAAD,CAAGsB,KAAMxM,EAAK+D,OAAO,UAAS,4BC1CxD7H,MAAEA,QAAOc,WAAO4G,UAClCnI,EAAK4I,cACH,QAAD,CAAOrI,MAAM,cAClB,QAAD,CAAOP,GAAAA,EAAQD,KAAK,WAAWiR,QAASzP,EAAOT,QAAS,IAAMqH,GAAU5G,KACvEd,4BCFIwQ,EAAaxE,UACZtE,EAAWsE,EAAMtE,WAAc+I,gBAC9B3P,EAAS2P,EAAI5I,OAA4B/G,iBACzC4G,oBAAWgJ,EAAG5P,MAEf6P,EAAY3E,EAAM4E,UAAaH,aACpB,UAAZA,EAAInL,IAAiB,OAClBxE,EAAS2P,EAAI5I,OAA4B/G,iBACzC8P,mBAAUF,EAAG5P,gBAGb,QAADsL,OAAWJ,GAAW,CAAE1M,KAAAA,EAAMoI,SAAAA,EAAUiJ,UAAAA,eAEtCE,YAAcR,EACjBG,QAGKM,GAAYC,GAAU,YAAa,WAAaC,IAEhDC,GAAcF,GAAU,cAAe,aAAehO,OAAOiO,KAE7DE,GAAaH,GAAU,aAAc,YAAchO,OAAOiO,kBCrB5CG,OAAEA,WAAQC,oBAAUC,YAAmBC,UAC1D9L,EAAQ+L,GAAa7I,EAAS,IAC/B8I,EAAUrB,GAAQ,iBACjBsB,EAAQjM,EAAOkM,OAAO9M,MAAM,YAC3B,0BAAQ+M,WAAYF,EAAMG,UAAWZ,EAAEa,SAASC,UAAQ,KAC7D,CAACX,EAAQ3L,sBAGVuM,GAAD,CAAUhS,KAAK,SAASsH,OAAK,EAACvG,MAAO0E,EAAQkC,SAAU6J,EAAWhK,SAAU,EAAGC,kBAAa6J,IAAqB,aAChH,MAAD,CAAKvR,MAAM,eACT0R,EAAQ3M,UAAUwH,GAAD,CAAK/G,IAAK0L,EAAGhR,MAAOgR,EAAG3Q,QAAS,UAAM+Q,WAAWJ,OAC/C,IAAnBQ,EAAQrP,UAAiBkK,GAAD,CAAKrM,YAAOsR,IAAa,iBClBrD,MAAM3C,GAAO,kEAeb,IAAIqD,GAAkD,6BAGhDA,GAAY,OACVnR,cAAqBoR,MAAM,GAAGtD,kBAAoBuD,iBACpCC,QAAQC,IAC3BvR,EAAMgE,KAAI,CAACwN,EAAO1O,IASrBwG,eAA0BkI,EAAyBC,SAC5CzR,cAAqBoR,MAAM,GAAGtD,MAAQ0D,EAAM9S,kBAAkB2S,oBACtDC,QAAQC,IACrBvR,EAAMgE,KAAI,CAACvD,EAASqC,IAItBwG,eAA8BkI,EAAyB/Q,EAA2BgR,EAAoBC,UAUtG,SAAwBC,UAChBA,EAAK5N,MAAM,QAChBC,eACMlB,EAAI8O,EAAMxO,QAAQ,WACjB,CACNyO,KAAMD,EAAME,UAAU,EAAGhP,GAAG+N,OAAO9M,MAAM,KACzCgO,QAASH,EAAMvO,MAAMP,EAAI,GAAG+N,OAC1B3N,WAAW,KAAM,KACjBA,WAAW,UAAW,YAhBpB8O,aADmBZ,MAAM,GAAGtD,MAAQ0D,EAAM9S,MAAM+B,EAAQ/B,UAAUiT,QAC7C3N,WAC3BvD,QAAAA,EACA+Q,MAAAA,EACAS,MAAoB,IAAbR,EAAoBC,GACxBQ,KAVuBC,CAAeX,EAAOY,GAAa3R,GAAUgR,EAAY3O,OACjFuP,OAbuBC,CAAWF,GAAaZ,GAAQ1O,OACtDuP,OAAOrO,eACNkO,IACHL,KAAM,CAACK,EAAOV,MAAM9S,MAAOwT,EAAOL,iBAG7BV,GAiCR,YAAsB1Q,SACE,iBAAZA,EACH,CACN/B,GAAI+B,EACJ8R,QAAS9R,EAAQ+R,MAAM,kBAAoB,sBAAwB/R,EAAUA,EAAQ+R,MAAM,8BAAgC,aAAe/R,EAAQyC,WAAW,IAAK,KAAKA,WAAW,MAAO,gBAAkB,MAElMuP,GAAShS,GACZA,EAED,CAAE/B,GAAI,UAAW6T,QAAS,MCjElC,CAAC,OAAQ,OAAQ,QAAQ5P,YAAa+P,aAAaC,WAAW,SAASxC,OACvE,CAAC,gBAAiB,4BAA4BxN,YAAa+P,aAAaC,WAAW,UAAUxC,OAC7FyC,OAAOlO,OAAO,aAEd,MAWMmO,GAAY,kDAIlB,YAAgBpS,EAA+DhC,SACvE,GAAGoU,MAAapS,EAAQqS,QAAUrU,EAAO,GAAGgC,EAAQwG,OAAOxI,MAGnE6K,kBAA6B7I,GACxBA,EAAQqS,UAVS,WAWhBJ,aAAaK,QApBU,iCAyK7BzJ,eAA8BuB,aAEtBmI,QAAcJ,OAAOK,KA5KV,qBA6KTC,MAAM,iDACRC,EAA+B,aAE1BC,WAAiBJ,EAAMtQ,OAC7BmI,EAAQuI,EAAQnQ,QACVoQ,KAAKL,EAAMtO,OAAO0O,YAGrBF,MAAM,6BAA6BC,EAAS7R,iCAC9CgQ,QAAQC,IAAI4B,SACV7N,WACAgO,KAAK,oDAAwD9N,GAAQF,OAlKtEiO,KAAsBtQ,EAAIuQ,WAAW,GAAGX,gBAAyB5P,EAAIuQ,WAAW,GAAGX,2BAC5EY,QAtBa,wBASP,aAeZxM,IAfY,UAkCtBqC,kBAA+B7I,EAAkBuG,WACxCkM,MAAM,qBAAqBzS,EAAQ/B,gBAEpCgV,QAAaC,GAAQ,GAAGC,GAAOnT,EAAS,iDACnC/B,KAAMgV,IACTG,SAASnV,EAAIgV,EAAKhV,GAAIsF,KAAKsB,GAAc,aAAeA,WAExDA,WACAgO,KAAK,4CAA6C9N,GAAQF,KAIpEgE,kBAAkC7I,EAAkBuG,WAC3CkM,MAAM,wBAAwBzS,EAAQ/B,gBAEvCgV,QAAaC,GAAQ,GAAGC,GAAOnT,EAAS,6CACnC/B,KAAMgV,IACT,aAAehV,GAAM,CAC3BoV,WAAYJ,EAAKhV,GAAI,GACrBqV,QAASL,EAAKhV,GAAI,UAGZ4G,WACAgO,KAAK,iDAAkD9N,GAAQF,uBAIvC0O,EAAsBC,EAAkBvV,WACjEwU,MAAM,iBAAiBc,KAAaC,KAAYvV,WAClD+B,EAAUiD,GAAOwQ,SAAStQ,SAAUuM,EAAEzR,KAAOsV,cAE5CvV,EAAO,CAAC,cAAe,UAAUuS,SAASiD,GAAY,SAAW,OACjEhR,EAAM,GAAG2Q,GAAOnT,EAAShC,MAASA,eAAkBwV,KAAYvV,sBACpD0S,MAAMnO,IACboO,aACH/L,SACF,IAAIC,MAAM,iCAAiC0O,YAAmBvV,MAAO8G,GAAQF,OAgErFgE,kBAAgCrG,EAAa4M,EAAoB,CAACM,GAAWA,cAErE6C,QAAcJ,OAAOK,KAlJV,qBAmJTC,MAAM,oCAAwCjQ,WAChDkR,QAAsBnB,EAAMR,MAAMvP,MAEpCkR,GAAiBA,EAAcC,kBAC1BlB,MAAM,oCAAoCjQ,WACrCkR,EAAc9C,eAGpB6B,MAAM,2BAA2BjQ,WACnCoR,QAAsBjD,MAAMnO,GAC5BqR,EAAezE,QAASwE,EAAchD,qBACtC2B,EAAMuB,IAAItR,EAAK,IAAIuR,SAASC,KAAKC,UAAUJ,KAC1CA,QACChP,WACAgO,KAAK,6CAAiD9N,GAAQF,cAE9D4N,MAAM,2BAA2BjQ,WACnCoR,QAAsBjD,MAAMnO,UACb4M,QAASwE,EAAchD,eCnKjCsD,GAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,QAmB/DC,GAA+D,GAM/DC,GAAoC,GAEpCC,GAKF,CACHC,KAAMC,EACNC,KAAMC,EACNC,KAAMC,EACNC,KAAMC,EACNC,SAAUC,EACVC,KAAMC,OAGIC,GACAC,GACAC,GCvDPC,GDyDJxM,kBAA0B5K,UACpBkW,GAASlW,QACJA,wBAEDqX,EAAcjB,GAAcpW,GAAIsX,iBAChCC,EAAkC,wBDvBZjC,EAAmBkC,EAAsCC,SAClF1V,EAAUiD,GAAOwQ,SAAStQ,SAAUuM,EAAEzR,KAAOsV,IAC9CvT,SAKC2V,GAAc3V,SAEd6Q,QAAQC,IAAI,CACjB8E,GAAgB5V,EAASyV,GACzBI,GAAmB7V,EAAS0V,cARpBtH,MAAM,+BAA+BpO,QAAcgU,KAAKC,UAAUhR,GAAOwQ,aCqBzEqC,CAAU7X,EAAIqX,EAAaE,SAC3BO,EAAU1B,GAAcpW,GAAI+X,WAAWV,aACpCrX,GAAM,CAAEqX,YAAAA,EAAaS,QAAAA,EAASP,YAAAA,GAChCrB,GAASlW,SACR4G,SACF,IAAIC,MAAM,uBAAuB7G,OAAQ8G,GAAQF,YAKnDsP,GAASlW,eAqDYsV,EAAmB0C,EAAkCC,SAC3ElW,EAAUiD,GAAOwQ,SAAS0C,cAAezG,EAAEzR,KAAOsV,IAClD6C,EAAaH,EAAehT,GAAOwQ,SAAS0C,cAAezG,EAAEzR,KAAOgY,IAAgB,EACpFI,EAAaH,EAAejT,GAAOwQ,SAAS0C,cAAezG,EAAEzR,KAAOiY,IAAgBjT,GAAOwQ,SAAS5S,OAAS,SAC5GuV,GAAcpW,GAAWA,GAAWqW,EClI9B,MAAMC,GAAO,GAAgBC,GAAgB,SAAiBC,EAAYC,OAExDA,SACjBD,YAGO,IAAdnB,GAAyB,OAEnBqB,EAAUC,SAASC,cAAc,QAAQF,WAG3CA,GAAWA,EAAQG,UAAYH,EAAQG,SAAS,iBAC1C,gBACA,iBAEPhG,QAAQC,IAAI2F,EAAKlT,KAAKuT,OAErBA,KAAOR,aAGNQ,IAAO,QACNC,EAAQD,EAAIE,SAAS,QACrBC,EAAcF,EAAQ,qBAAuB,MAE/CJ,SAASO,cAAc,cAAcJ,MAAQG,kBAI3CnK,EAAO6J,SAASC,cAAc,iBAE/BO,IAAMJ,EAAQ,aAAe1B,GAC7B0B,MACIK,GAAK,WACLC,YAAc,MAElBrI,KAAO8H,WAEHQ,KAAKC,YAAYzK,GACtBiK,EACO,IAAIlG,SAAQ,CAAC2G,EAAKC,OAChBvO,iBAAiB,OAAQsO,KACzBtO,iBAAiB,QAASuO,iBAGvCC,MAAK,IAAMlB,WCvCFmB,GAAAC,swJAAAA,GAAAD,yBACW,uBACH,sBACE,8BACD,2BACA,mCACM,2CACE,0CACN,qBAEXE,oCACR,sBAAavF,QAAQsF,mBAAgB,SAG7BE,iCACR,sBAAaxF,QAAQsF,gBAAa,WAG1BG,4BACT/X,EAAUiS,aAAaK,QAAQsF,sBACjC5X,GAAWkU,GAAW3D,SAASvQ,GAC3BA,EAED,aAGQgY,kCACR,sBAAa1F,QAAQsF,iBAAc,eAG3BK,kCACR,sBAAa3F,QAAQsF,iBAAc,WAG3BM,iCACkC,UAA1CjG,aAAaK,QAAQsF,wBAGbO,yCACR,sBAAa7F,QAAQsF,yBAAsB,aAGnCQ,6BACTC,EAAWpG,aAAaK,QAAQsF,uBAClCS,EACIrE,KAAKsE,MAAMD,GAEZ,CAACE,QAGO5Y,qBAAYC,GACvBA,gBAAuBoT,QAAQ4E,eAAahY,OAGjCC,kBAASC,GACpBA,gBAAoBkT,QAAQ4E,YAAU9X,OAG3BC,oBAAWC,GACtBA,gBAAsBgT,QAAQ4E,cAAY5X,OAG/BwY,mBAAUC,GACrBA,gBAAqBzF,QAAQ4E,aAAWa,OAG7BC,mBAAUC,GACrBA,gBAAqB3F,QAAQ4E,aAAWe,OAG7BC,yBAAgBC,QACV,IAAjBA,gBAAyC7F,QAAQ4E,mBAAiBiB,EAAalY,gBAGpEmY,0BAAiB9Y,GAC5BA,gBAAsBgT,QAAQ4E,qBAAmB5X,OAGtC+Y,qBAAYV,GACvBA,gBAAuBrF,QAAQ4E,eAAa5D,KAAKC,UAAUoE,KCvEjE,MAAMW,GAASC,EAAsB,CACpCC,KAAM,OACNC,UAAenV,EACfoV,eAAgB,SAGJC,GAIT,CACHC,SAAUC,gBAGcL,EAAclV,KAAgBwV,wBAMvD,SAA6Bha,EAAega,UACpCha,EAAMwD,QAAQ,oBACdzD,EAAQka,SAAS1H,EAAMnP,MAAM,mBACR,sBAAXrD,IAAuBia,EAAOja,GAASwS,KANjD2H,CAF2B,SAAA,SAAA,SAAA,YAAQR,aAAQlV,MAC/C,YAAQ2V,aAAK3V,MAAQqV,GAAQC,SAAStV,MAAQA,EACfwV,GAUnC3Q,kBAA0BjJ,MACrByZ,GAAQzZ,gBACNga,EAAa3W,GAAO4W,UAAU1W,SAAa+V,EAAKpN,OAASlM,QAC1Dga,eACC3G,otCAAa6G,CAAO,iBAAiBla,UACrCma,GAAgC,IAAvBH,EAAW7D,uqDAChBiE,CAAO,+CAA+Cpa,aACxDA,GAAYkL,OAAKmI,EAAKK,SAAYyG,EAAOzG,8BAI1C2G,EAAWjB,iBAGYpO,SAAEA,UACzBsO,EAAMvZ,GAAeyH,EAAS,QAE/B+R,EAASe,GAAY,CAAClW,KAAgBwV,IACpCW,GAASjB,EAAMlV,KAAQwV,IAC5B,CAACN,IAEEE,EAAiBc,GAAYrR,MAAOuR,UACnCC,GAAWD,MACPza,YAAYya,MAChBza,YAAYya,KACNA,KACV,OAEO,sBAEF7T,EAASoR,GAAME,oBACfhH,QAAQC,IAAI,CACjBuJ,GAAW,SACI,OAAX9T,EAAkB,CAAC8T,GAAW9T,IAAW,OAElCA,SAEX,UAEG/G,EAAgB,CACrB0Z,KAAAA,EACAC,OAAAA,EACAC,eAAAA,YAGOJ,GAAOsB,SAAR,CAAiB9a,MAAAA,GACtBoL,SCvEU2N,GAAyB,CACrCxJ,KAAM,SACNwL,UAAW,QACXC,MAAO,IAkBFC,GAAUxB,EAA8B,CAC7CyB,QAASnC,GACToC,cAAe,OACfC,cAAe,OACfC,WAAY,KAAM,EAClBC,SAAU,OACVC,UAAW,8BAIJd,EAAWQ,iBAGa7P,SAAEA,UAC1ByN,EAAUU,GAAe3R,EAAoBuQ,GAAMS,gBAEnD4C,EAAaC,GAAkB7T,EAAiBmR,GAAcxJ,MAC/D2L,EAAU7L,GAAQ,kBAChB,WAAS1L,SAAU+X,EAAEnM,OAASiM,OAAgBzC,KACnD,CAACF,EAAU2C,KAEPG,EAAQC,GAAahU,OAAuC,GAC7DkF,EAAOuC,GAAQ,QACfsM,SACET,EAAQF,MAAMrX,SAAUkY,EAAErd,OAASmd,EAAO,IAAME,EAAEpd,KAAOkd,EAAO,OACrE,CAACT,EAASS,IAEPG,EAAiBpB,GAAaqB,OAC7BxC,YAAYwC,KACNA,KACV,IAEGX,EAAgBV,GAAasB,MACnBnD,EAAS9U,QAAS2X,EAAEnM,OAASiM,EAAclQ,OAAKoQ,GAAMM,GAAUN,OAC7E,CAAC7C,EAAU2C,IAERH,EAAaX,GAAY,CAAClc,EAAcC,EAAwBud,cAChEA,EAAMvd,GAEJ,OACAwd,EAAQD,EAAMvd,GAAGsS,SAAS,KAAOiL,EAAMvd,GAAK,GAAGyc,EAAQH,aAAaiB,EAAMvd,KAC1Eyd,EAAShB,EAAQF,MAAMmB,SAAUN,EAAErd,OAASA,GAAQqd,EAAEpd,KAAOwd,OAC9Dxd,EAIE,sBACIA,MAAOA,GAAMA,IAAOwd,GAASC,SAC/B,IAEM,CAAElB,MAAOE,EAAQF,MAAMjX,QAAS8X,EAAErd,OAASA,GAAQqd,EAAEpd,KAAOA,EAAK+M,SAAKqQ,GAAMG,GAAX,CAAkBvd,GAAIwd,IAAUJ,wBACrGpd,MAAOA,KAAc,CAACD,EAAMyd,QAT9B,IACJC,SAAe,IACL,CAAElB,MAAO,IAAIE,EAAQF,MAAO,CAAExc,KAAAA,EAAMC,GAAIwd,EAAOxI,KAAM,WAAMA,QAAQ,SACvE,CAACjV,EAAMyd,YAPJ,CAAEjB,MAAOE,EAAQF,MAAMnK,WAAYgL,EAAErd,OAASA,GAAQqd,EAAEpd,KAAOA,aAgBvE,IACL,CAAC2c,EAAeF,EAASpO,IAEtBwO,EAAWZ,GAAY,CAAClc,EAAcC,WACrC2d,EAAM3Y,GAAOC,WAAWC,SAAUC,EAAEnF,KAAOD,GAAQoF,EAAEyY,OAAS7d,QAC/D4d,QACE,IAAI9W,MAAM,iCAAiC9G,OAExC,CAAC4d,EAAI3d,GAAIA,MACb4E,GAAS+Y,EAAIpZ,QACjB,IAEGuY,EAAYb,GAAY,YACnB,KACR,IAEG1a,EAAwB,CAC7Bkb,QAAAA,EACApO,KAAAA,EACAqO,cAAeM,EACfL,cAAAA,EACAC,WAAAA,EACAC,SAAAA,EACAC,UAAAA,YAGON,GAAQH,SAAT,CAAkB9a,MAAAA,GACvBoL,eAIyB0B,eACpBiO,EAAWtc,GAAMqO,EAAKrO,GAAGsS,SAAS,KAAOjE,EAAKrO,GAAGqF,MAAM,KAAO,CAAC,YAAagJ,EAAKrO,IAClF2d,EAAM3Y,GAAOC,WAAWC,SAAUC,EAAEnF,KAAOqO,EAAKtO,WACjD4d,QACE,IAAI9W,MAAM,iCAAiCwH,EAAKtO,cAEhD,QAAQuc,KAAa,WAAIsB,QAAQD,EAAI3d,MAAMA,ICnHnD,MAAM6d,GAAQ7C,EAAqB,CAClCnZ,MAAO,OACPic,YAAa,OACbC,YAAa,8BAIN/B,EAAW6B,iBAGWlR,SAAEA,UACxB9K,EAAOD,GAAYuH,EAASuQ,GAAMG,YACnCmE,EAAeC,GAAc,iCAC7BC,EAAcD,GAAc,mCAExB,cACAE,gBAAgBC,aAAa,aAAcvc,KAClD,CAACA,UAEEkc,EAAc9B,GAAaoC,OACtBzc,SAASyc,MACbzc,SAASyc,KACNA,KACP,OAEO,QACCjc,sBAAsB4b,EAAe,QAAUE,EAAc,OAAS,UAC9E,CAACF,EAAcE,UAEZ3c,EAAe,CACpBM,MAAAA,EACAic,YAAuB,UAAVjc,GAAgC,SAAVA,GAAoBmc,EAAgB,QAAU,OACjFD,YAAAA,YAGOF,GAAMxB,SAAP,CAAgB9a,MAAAA,GACrBoL,GCzCH,MAMM2R,GAAQtD,EAAqB,CAClCuD,MAAO,GACPC,YAAa,qBAGWD,EAAgB/I,SAClCiJ,EAAUzC,EAAWsC,cACjB,KACLC,KACKC,YAAYD,EAAO/I,KAE1B,CAAC+I,EAAO/I,IACJiJ,eAGsB9R,SAAEA,UACzBuO,OAAEA,GAAWwD,MACZH,EAAOI,GAAYxV,EAAiB+R,EAAO,eAS5C3Z,EAAQ,CACbgd,MAAAA,EACAC,YATmBvC,GAAY,CAAC2C,EAAepJ,iBAClCxQ,GAAOwQ,SAASlQ,QAASmM,EAAEzR,YAClC6e,EAAgBrJ,EAAS7Q,MAAM6Q,EAAS5S,OA3BtB,YA4Bf2b,MAAQ,GAAGK,eAAmBC,EAAc1b,KAAK,UACjDyb,KACP,cAOKN,GAAMjC,SAAP,CAAgB9a,MAAAA,GACrBoL,GCnCH,MAMMmS,GAAU9D,EAAuB,CACtCjZ,QAAS,SACTgd,cAAe,8BAIR/C,EAAW8C,iBAGanS,SAAEA,UAC1B5K,EAASD,GAAcqH,EAAoBuQ,GAAMI,cAGlDkF,EADenZ,GAAgBF,KACF9B,IAnBd,cAoBX,KACLoS,GAAW3D,SAAS0M,IAA+Bjd,IAAYid,KACvDA,KAEV,CAACjd,EAASid,UAEPD,EAAgB9C,GAAagD,IAC9BpZ,GAAgBF,KAAiBuZ,IA3BjB,eA4BJ,CAAEnd,eAERD,WAAWmd,MACfnd,WAAWmd,KACNA,KACT,IAEG1d,EAAiB,CACtBQ,QAAAA,EACAgd,cAAAA,YAGOD,GAAQzC,SAAT,CAAkB9a,MAAAA,GACvBoL,GCzCH,IAAIwS,IAAQ,EAQZ,MAAMC,GAAS,CACdC,YAAa,IAAK,GAClBC,SAAU,IAAK,GACfC,gBAAiB,MAAO,GACxBC,QAAS,IAAK,GACdC,UAAW,IAAK,GAChBC,OAAQ,IAAK,GACbC,OAAQ,CAAC,EAAG,IACZC,WAAY,CAAC,EAAG,IAuBjB,IAAIC,GACAC,GAoDJlV,kBAAyBmV,EAAYC,SAC9BC,EAAW,CAACF,EAAOC,EAAQE,QAAS,GAAGF,EAAQrc,OAAQqc,EAAQje,gBAChEoF,GAAU8Y,EAAUJ,SACX9Y,GAAUkZ,YASzBrV,eAA8BmV,EAAYC,wBACjC,0BAAOjgB,eAAMgF,QAAQ,cAAe,SACtC,eACG,IAAIob,EAAWC,EAAW/F,MAAM0F,EAAMM,YAEzC,qBACEC,cAAeC,SAAS,GAAK,EAC7BC,EAAY,SAAA,WAAMC,iBAAQ7d,UAAU,QACnC,CACN6E,SAAS4C,EAAWqW,EAAYC,eACzBvc,QAAYkc,OAAeA,IAAUE,EAAYA,GAAaA,SAC7DJ,EAAW/F,MAAM,WAAMoG,iBAASrc,GAAGwc,YAIxC,qBACG,WAAMC,iBAAQ9b,QAAQ,cAAe,SACtC,WACI+b,GAAad,EAAQje,QAAS,QAAUgf,GAAiBC,aAE7D,cACIF,GAAad,EAAQje,QAAS,cA8N3C6I,8BACyBqW,GAAY,OAAQ,YAAa,cACxC9e,UAAU+e,aAhO+BC,GAAsBpB,OAGtEqB,YAAUC,YAAYtB,GAC1Be,GAAad,EAAQje,QAAS,QAAS,OAhI9C6I,iBACKuU,WACEmC,EAAKC,OACH,UACA/M,MAAM,6BAA6B+M,OA6HlCC,SACAC,EAAW,IAAIC,GACfnc,EAAS0X,GACM,iBAANA,EAAiB,CAACA,EAAGA,GAAKA,GAElC0E,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAGhc,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,cACzGnC,KAAK2b,EAAMU,OAAQ,OACvBpB,YAAEA,WAAaC,kBAAUC,UAAiBC,YAASC,QAAW+C,SAAO9C,GAAWtb,EAAEqe,aACrF9N,KAAKpP,EAAM8Z,GAAa,MACxB1K,KAAKpP,EAAM8Z,GAAa,MACxB1K,KAAKpP,EAAM+Z,GAAU,MACrB3K,KAAKpP,EAAM+Z,GAAU,MACrB3K,KAAKpP,EAAMga,GAAiB,MAC5B5K,KAAKpP,EAAMga,GAAiB,MAC5B5K,KAAKpP,EAAMia,GAAS,MACpB7K,KAAKpP,EAAMia,GAAS,MACpB7K,KAAKpP,EAAMka,GAAW,MACtB9K,KAAKpP,EAAMka,GAAW,MACtB9K,KAAKpP,EAAMid,GAAO,MAClB7N,KAAKpP,EAAMid,GAAO,MACnB7N,KAAK+K,KACL/K,KAAK8M,EAASiB,SAASte,EAAEic,MAAOhd,KAAKC,MAAsB,WAAhBD,KAAKE,kBAE7Ckf,EAAaE,EAAiB,IAAIC,aAAajB,GAAK,IAAIiB,aAAahB,GAAK,IAAIgB,aAAaf,GAAK,IAAIe,aAAad,GAAK,IAAIc,aAAab,GAAK,IAAIa,aAAaZ,GAAK,IAAIY,aAAaX,GAAK,IAAIW,aAAaV,GAAK,IAAIU,aAAaT,GAAK,IAAIS,aAAaR,GAAK,IAAIQ,aAAaP,GAAK,IAAIO,aAAaN,GAAK,IAAIM,aAAaL,GAAI,IAAIM,WAAWtc,IAC1Uuc,EAAUC,EAAgB/C,EAAQrc,KAAMqc,EAAQE,QAAQb,YAAY2D,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQb,YAAY4D,YAAajD,EAAQE,QAAQZ,SAAS0D,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQZ,SAAS2D,YAAajD,EAAQE,QAAQX,gBAAgByD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQX,gBAAgB0D,YAAajD,EAAQE,QAAQV,QAAQwD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQV,QAAQyD,YAAajD,EAAQE,QAAQT,UAAUuD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQT,UAAUwD,YAAajD,EAAQE,QAAQI,MAAM0C,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQI,MAAM2C,mBACtlB,CACNxb,SAAS4C,EAAGE,EAAGoW,eACRuC,EAAMC,EAAYV,EAAYK,EAASzY,EAAGA,EAAI,EAAG,EAAGE,EAAGA,EAAI,EAAG,EAAGoW,EAAGA,EAAI,EAAG,UAC1EP,EAAW/F,MAAM,WAAS+I,KAAKF,EAAI,OAAO,YAElDG,WAAUC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,IAEpD,IADKX,EAAYV,EAAYK,EAASQ,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,IAC/Exe,wBAAqB+U,MAAM,WAAS+I,KAAKpjB,MAAO,cAEjEyH,WAAW4C,EAAGE,EAAGoW,SACVoD,EAAUC,EAAclB,EAASzY,EAAGA,EAAI,EAAG,EAAGE,EAAGA,EAAI,EAAG,EAAGoW,EAAGA,EAAI,EAAG,IACpEpO,EAAGpO,EAAGqC,EAAGI,EAAGqd,GAAKF,EAAQpf,MAAM,EAAG,SAClC,CACN0a,YAAa9M,EACb+M,SAAUnb,EACVob,gBAAiB/Y,EACjBgZ,QAAS5Y,EACT6Y,UAAWwE,IAGbxc,YAAY6b,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,SACvDC,EAAUC,EAAclB,EAASQ,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,GACnFI,EAAS,WACN9f,EAAI,EAAGA,EAAI2f,EAAQnhB,OAAQwB,GAAK,EAAG,OACpCmO,EAAGpO,EAAGqC,EAAGI,EAAGqd,GAAKF,EAAQpf,MAAMP,EAAGA,EAAI,KACtCuQ,KAAK,CACX0K,YAAa9M,EACb+M,SAAUnb,EACVob,gBAAiB/Y,EACjBgZ,QAAS5Y,EACT6Y,UAAWwE,WAGNC,IAGH,OACAC,EAAQ,CAAC,WAAY,cAAe,WAAY,aACpD7e,KAAI,CAACtF,EAAIoE,iBACHggB,EAASrE,EAAM,GAAG/f,oBACjBgjB,YAAcqB,GAAM,WAAOrB,2BAC3B,IAAIsB,EAAY,IAAIC,EAAavE,EAAQrc,KAAOP,OAAOgB,IAAKggB,aAEhEnhB,MAAMiE,QAAQ6Y,EAAMU,SAAmC,IAAxBV,EAAMU,OAAO7d,OAG1C,CACN6E,SAAS4C,EAAWqW,EAAYC,SACzB6D,EAAIL,EAAM7e,QAASmf,EAAEC,OAAOra,EAAGsW,EAAG,SACpCgE,EAAUC,EAAAA,EACVC,EAAW,aACJxE,MAAEA,EAAOoC,WAAYxF,KAAO8C,EAAMU,OAAQ,OAC9CqE,EAAOvV,GAAO0N,EAAE8H,SAAWP,EAAE,IAAMjV,GAAO0N,EAAEoC,YAAcmF,EAAE,IAAMjV,GAAO0N,EAAEqC,SAAWkF,EAAE,IAAMjV,GAAO0N,EAAEwC,UAAY+E,EAAE,IAAMjV,GAAO0N,EAAEyC,QACtIoF,EAAOH,MACAG,IACCzE,UAGND,EAAW/F,MAAMwK,KAdlB,IAAI1E,EAAWC,EAAW4E,OAAO,mBAmBtC,IAAIne,MAAM,wBAzHUoe,CAAelF,EAAOC,IAEzC,CACNkF,YAAapF,IAyHf,YAAuBO,EAAe8E,aAChC9E,QACG,CAAC,IAAK,IAAK,WAEb+E,EAAQ,WAAY/E,MAAUgF,GAAchF,eACpC,IAAV+E,EACIE,GAAcjF,GAEf+E,EASR,MAAMC,GAAwC,CAC7CE,qBAAsB,CAAC,IAAI,GAAG,IAC9BC,6BAA8B,CAAC,IAAI,IAAI,KACvCC,0BAA2B,CAAC,IAAI,IAAI,IACpCC,gCAAiC,CAAC,GAAG,GAAG,IACxCC,0BAA2B,CAAC,GAAG,GAAG,IAClCC,kBAAmB,CAAC,IAAI,IAAI,IAC5BC,yBAA0B,CAAC,GAAG,IAAI,IAClCC,+BAAgC,CAAC,GAAG,GAAG,IACvCC,uBAAwB,CAAC,GAAG,GAAG,KAC/BC,2BAA4B,CAAC,IAAI,EAAE,GACnCC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,8BAA+B,CAAC,IAAI,IAAI,IACxCC,4BAA6B,CAAC,GAAG,GAAG,IACpCC,8BAA+B,CAAC,GAAG,GAAG,KACtCC,gCAAiC,CAAC,EAAE,EAAE,IACtCC,uBAAwB,CAAC,EAAE,EAAE,IAC7BC,4BAA6B,CAAC,EAAE,EAAE,IAClCC,mBAAoB,CAAC,IAAI,IAAI,IAC7BC,yBAA0B,CAAC,IAAI,GAAG,IAClCC,yBAA0B,CAAC,IAAI,IAAI,IACnCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,0BAA2B,CAAC,IAAI,IAAI,KACpCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,4BAA6B,CAAC,IAAI,IAAI,IACtCC,0BAA2B,CAAC,GAAG,IAAI,IACnCC,mBAAoB,CAAC,EAAE,IAAI,IAC3BC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,+BAAgC,CAAC,IAAI,IAAI,KACzCC,oCAAqC,CAAC,IAAI,IAAI,KAC9CC,qCAAsC,CAAC,IAAI,IAAI,KAC/CC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,kCAAmC,CAAC,GAAG,IAAI,IAC3CC,mCAAoC,CAAC,GAAG,GAAG,IAC3CC,2BAA4B,CAAC,IAAI,IAAI,KACrCC,+BAAgC,CAAC,IAAI,IAAI,KACzCC,qCAAsC,CAAC,IAAI,IAAI,KAC/CC,uBAAwB,CAAC,IAAI,IAAI,KACjCC,mBAAoB,CAAC,GAAG,IAAI,GAC5BC,wBAAyB,CAAC,GAAG,IAAI,IACjCC,0BAA2B,CAAC,GAAG,IAAI,IACnCC,yBAA0B,CAAC,GAAG,GAAG,GACjCC,2BAA4B,CAAC,EAAE,EAAE,KACjCC,sCAAuC,CAAC,IAAI,IAAI,KAChDC,wCAAyC,CAAC,IAAI,IAAI,KAClDC,4BAA6B,CAAC,IAAI,IAAI,IACtCC,iCAAkC,CAAC,IAAI,IAAI,IAC3CC,6CAA8C,CAAC,IAAI,IAAI,KACvDC,0BAA2B,CAAC,IAAI,IAAI,KACpCC,0BAA2B,CAAC,GAAG,GAAG,IAClCC,sBAAuB,CAAC,GAAG,GAAG,IAC9BC,4BAA6B,CAAC,GAAG,GAAG,IACpCC,iCAAkC,CAAC,IAAI,EAAE,KACzCC,4BAA6B,CAAC,IAAI,EAAE,KACpCC,0BAA2B,CAAC,IAAI,GAAG,IACnCC,kBAAmB,CAAC,EAAE,EAAE,KACxBC,mBAAoB,CAAC,IAAI,IAAI,IAC7BC,kBAAmB,CAAC,EAAE,EAAE,KACxBC,oBAAqB,CAAC,IAAI,IAAI,IAC9BC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,sCAAuC,CAAC,IAAI,IAAI,KAChDC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,8BAA+B,CAAC,GAAG,GAAG,IACtCC,kCAAmC,CAAC,GAAG,IAAI,KAC3CC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,6BAA8B,CAAC,GAAG,GAAG,IACrCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,6BAA8B,CAAC,IAAI,IAAI,KACvCC,kBAAmB,CAAC,EAAE,IAAI,KAC1BC,wBAAyB,CAAC,GAAG,IAAI,KACjCC,kBAAmB,CAAC,GAAG,IAAI,IAC3BC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,4BAA6B,CAAC,GAAG,IAAI,KACrCC,8BAA+B,CAAC,GAAG,IAAI,KACvCC,oCAAqC,CAAC,GAAG,IAAI,KAC7CC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,oBAAqB,CAAC,IAAI,IAAI,KAC9BC,qBAAsB,CAAC,EAAE,EAAE,GAC3BC,uBAAwB,CAAC,EAAE,EAAE,KAC7BC,0BAA2B,CAAC,GAAG,IAAI,KACnCC,oCAAqC,CAAC,IAAI,IAAI,KAC9CC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,yBAA0B,CAAC,GAAG,GAAG,IACjCC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,wBAAyB,CAAC,IAAK,IAAK,KACpCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,6BAA8B,CAAC,IAAK,IAAK,KACzCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,wBAAyB,CAAC,GAAI,GAAI,KAClCC,kBAAmB,CAAC,IAAK,IAAK,KAC9BC,mBAAoB,CAAC,IAAK,IAAK,IAC/BC,uBAAwB,CAAC,IAAK,IAAK,IACnCC,4BAA6B,CAAC,IAAK,IAAK,IAGnC5K,GAAe,CAACjhB,KAAK,wBAAwB4D,KAAK,EAAEkoB,eAAe,CAAC7I,eAAeC,WAAW,CAAC,EAAE,IAAI6I,kBAAkB,CAAC9I,eAAeC,WAAW,CAAC,EAAE,IAAI8I,eAAe,CAAC/I,eAAeC,WAAW,CAAC,EAAE,IAAI+I,gBAAgB,CAAChJ,eAAeC,WAAW,CAAC,EAAE,IAAIxC,OAAO,CAAC,CAACJ,MAAM,0BAA0BoC,WAAW,CAACsC,SAAS,EAAE1F,YAAY,EAAEC,SAAS,EAAEG,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,6BAA6BoC,WAAW,CAACsC,SAAS,EAAE1F,YAAY,EAAEC,aAAcG,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,2BAA2BoC,WAAW,CAACsC,SAAS,EAAE1F,YAAY,GAAIC,SAAS,EAAEG,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,0BAA0BoC,WAAW,CAACsC,SAAS,EAAE1F,YAAY,EAAEC,SAAS,GAAIG,UAAU,EAAEC,OAAO,OAAQ,CAACW,MAAM,0BAA0BoC,WAAW,CAACsC,SAAS,EAAE1F,gBAAiBC,SAAS,EAAEG,UAAU,EAAEC,OAAO,SAE1xBqB,GAAiB,CAAChhB,KAAK,wBAAwB0gB,OAAO,CAAC,CAACJ,MAAM,0BAA0BoC,WAAW,CAACpD,YAAY,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,6BAA6BoC,WAAW,CAACpD,YAAY,EAAEC,aAAcC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,2BAA2BoC,WAAW,CAACpD,YAAY,GAAIC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACW,MAAM,0BAA0BoC,WAAW,CAACpD,YAAY,EAAEC,SAAS,GAAIC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,OAAQ,CAACW,MAAM,0BAA0BoC,WAAW,CAACpD,gBAAiBC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,SC5UhtB,MAAMuM,GAAU,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvQC,GAAgB,CACrB,CAAC,IAAK,GAAI,IACV,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,IAAK,IACV,CAAC,IAAK,GAAI,KACV,CAAC,IAAK,IAAK,IACX,CAAC,GAAI,IAAK,kBAQenM,EAAYrU,EAAgBsU,SAC/Czc,EAAS,IAAIghB,EAAavE,EAAQrc,MAClC2H,EAAwB,CAC7B6gB,WAAY,GACZC,SAAU,GACV7oB,OAAAA,EACA8oB,eAAgB,IAAIC,EAAY/oB,EAAOgpB,OAAQ,EAAG,CAAC,IACnDC,SAAU,GACVzqB,QAASie,EAAQje,QACjB0qB,UAAW,IAAMlpB,EAAOkpB,YACxBC,QAAUjmB,GAAgBlD,EAAOmpB,QAAQjmB,GACzCkmB,aAAc,IAAMtpB,KAAKupB,QAAUvpB,KAAKwpB,IAAI,EAAItpB,EAAOkpB,cAAgBppB,KAAKypB,IAAI,EAAIzpB,KAAK0pB,GAAKxpB,EAAOkpB,aACrGhlB,UAAUlG,UA6CZ,SAAmBA,EAAY+J,cACT,iBAAV/J,SACHA,KACGA,EAAMyrB,YACT,WAAMA,QAAQ,EAAI1hB,EAAIohB,QAAQ,cAAWO,UAAU,WAElDC,GAAU3rB,EAAMxB,WAClB,kBAAmBwB,EAAMA,UACzB,iBAAkBA,EAAMA,MAAM4rB,cAAgB7hB,EAAIohB,QAAQnrB,EAAMA,MAAM6rB,cAAgB7rB,EAAMA,MAAM4rB,cAAgB,OAClH,0BAA2B5rB,EAAMA,MAAM4rB,cAAgB7hB,EAAIohB,QAAQphB,EAAIohB,QAAQnrB,EAAMA,MAAM6rB,cAAgB7rB,EAAMA,MAAM4rB,cAAgB,GAAK,OAC5I,iBAAkB9I,GAAM/Y,EAAI+hB,UAAU9rB,EAAMA,MAAM+rB,QAAS/rB,EAAMA,MAAM4rB,cAAe5rB,EAAMA,MAAM6rB,mBAClG,uBACEG,EAAShsB,EAAMA,MAAMisB,KAAOliB,EAAIqhB,eAAiBprB,EAAMA,MAAMksB,iBAC5DpqB,KAAKC,MAAM+gB,GAAM9iB,EAAMA,MAAM4rB,cAAe5rB,EAAMA,MAAM6rB,cAAeG,QAC1E,sBACEG,EAAensB,EAAMosB,aAAuBC,QAAe,CAACC,EAAKjnB,IAAMinB,EAAMjnB,EAAEknB,QAAQ,OACzF1pB,EAAIkH,EAAIohB,QAAQgB,aACT9mB,KAAKrF,EAAMosB,mBAChB/mB,EAAEknB,OACH1pB,EAAI,SAAUkH,EAAI+hB,UAAUzmB,EAAEoO,aAE5B,SAEF,EApEmBqY,CAAU9rB,EAAOqG,gBAGnCyC,EAAI,EAAGA,EAAI2V,EAAQ1W,KAAK,GAAK,GAAIe,GAAK,UACrCsW,EAAI,EAAGA,EAAIX,EAAQ1W,KAAK,GAAK,GAAIqX,GAAK,EAC1CG,GAAad,EAAQje,aAAS,EAAW,WAC9B,CAAK,GAAJsI,EAAQ,EAAO,GAAJsW,GAASS,YAAUC,YAAYtB,GAAQzU,MAEjD,CAAK,GAAJjB,EAAQ,EAAO,GAAJsW,GAASS,YAAUC,YAAYtB,EAAMgO,WAAYziB,SAK1E0J,EAAOtJ,EAAIsJ,OACbA,KAAKgZ,KAAK,eAEFC,EAAKC,KAAY5iB,EAAI6gB,WAAY,IACxC8B,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,IAAMjO,EAAQ1W,KAAK,IAAM2kB,EAAI,IAAMjO,EAAQ1W,KAAK,IAAM2kB,EAAI,IAAMjO,EAAQ1W,KAAK,kBACzHlF,EAAK6pB,EAAI,IAAkB,IAARziB,OAAwB,EAATyiB,EAAI,GACtC7I,EAAQ8I,EAAUhC,GAActpB,OAASspB,GAAcgC,GAAW5I,GAAcha,EAAI8gB,SAAS8B,MAC9F9pB,GAAKigB,GAAM,GAAI,IAAKe,EAAM,MAC1BhhB,EAAI,GAAKigB,GAAM,GAAI,IAAKe,EAAM,MAC9BhhB,EAAI,GAAKigB,GAAM,GAAI,IAAKe,EAAM,MAC9BhhB,EAAI,GAAK,YAGNiG,EAAI,EAAGA,EAAI2V,EAAQ1W,KAAK,GAAIe,GAAK,UAChCE,EAAI,EAAGA,EAAIyV,EAAQ1W,KAAK,GAAIiB,GAAK,EAAG,UAClCjH,MAAM+G,EAAI,IAAMhH,KAAKC,MAAMiH,EAAI,KAAO,GAAM,iBAChDnG,EAAKmG,GAAiB,IAARiB,OAAmB,EAAJnB,UAC1B8jB,EAAI,EAAGA,EAAI,EAAGA,GAAK,IACtB/pB,EAAI+pB,GAAK,IAAOnZ,EAAK5Q,EAAI+pB,IAMlC,YAAmBnuB,UACXA,EAAG8U,WAAW,cAAgB9U,EAAG2E,MAAM,IAAM3E,EAGrD,YAAmBiuB,EAAe1jB,SAC1B,CAAC,CAAE0jB,EAAI,GAAI1jB,EAAG0jB,EAAI,KA8B1B,YAAuBG,EAAaC,OAC9Bta,GAASqa,SAAe,IAAIvnB,MAAM,8BACnCunB,EAAOE,gBAAiBF,EAAOE,YAC/BF,EAAOG,oBAAqBH,EAAOG,gBACnCH,EAAOI,iBAAkB,IAAMJ,EAAOI,gBACpC,IAAI3nB,MAAM,2BA6CjB,YAAoB3C,EAAWoH,SACxBlH,EAAIkH,EAAI8gB,SAAS1nB,QAAQR,aAC3BE,EAAgBA,KAChBgoB,SAASzX,KAAKzQ,GACXoH,EAAI8gB,SAASxpB,OAAS,GAG9B,YAAuBqrB,EAAeC,EAAc5iB,YAC5B,iBAAZ4iB,gBACN/B,WAAWxX,KAAK,CAACsZ,EAAKQ,GAAWP,EAAS5iB,WAGzCvL,EAAOmtB,GAAU,0BAASntB,QAAQ,SAClC2uB,EAAYC,GAAS5uB,GACvB2uB,IACOR,EAAQlpB,OAAQipB,EAAK3iB,KAE3B6gB,WAAWxX,KAAK,CAACsZ,EAAKQ,GAAW1Y,KAAKC,UAAUkY,GAAU5iB,KAIhE,YAAsB2iB,EAAeW,EAAgBtjB,eAC9CvL,EAAOmtB,GAAU,0BAAWntB,QAAQ,QACpC8uB,EAAcC,GAAW/uB,UAC1B8uB,EAGEA,QAAYD,WAAW5pB,OAAQipB,EAAK3iB,GAFnC,CAAC2iB,GAKV,MAAMU,GAEF,CACHI,UAAW,CAAC3K,EAAQ6J,EAAK3iB,KACN0jB,GAAaf,QAAK7J,WAAQ6K,UAAW3jB,GAC7CrH,YAAairB,GAAcjS,QAAGmH,WAAQ8J,QAAS5iB,MAE1D6jB,wBAAyB,CAAC/K,EAAQ6J,EAAK3iB,QAExB2iB,EADE3iB,EAAImhB,YAAc,SAAMrI,WAAQgL,mBAAehL,WAAQiL,cAC3C/jB,IAE7BgkB,gBAAiB,CAAClL,EAAQ6J,EAAK3iB,uBACnB8R,KAAK,0BAAQgP,YAAY,MAC/B9gB,EAAImhB,uCAAkB8C,UAAU,kBACrBtB,EAAK7Q,EAAE8Q,QAAS5iB,MAIlB2iB,QAAK7J,WAAQ/O,QAAS/J,IAErCkkB,uBAAwB,CAACpL,EAAQ6J,EAAK3iB,kBAEvB2iB,EADE,0BAAQ7B,mBAAW9gB,EAAIohB,QAAQ,SAAA,0BAAQN,mBAAUxpB,UAAU,IAC/C0I,KAIxBwjB,GAEF,CACHS,OAAQ,CAACnL,EAAQ6J,EAAK3iB,kBACdA,EAAImhB,YAAc,6BAAa8C,UAAU,GAAK,CAACtB,GAAO,IAE9DwB,MAAO,CAACrL,EAAQ6J,EAAK3iB,kBACb,IAAIrI,MAAMqI,EAAI+hB,UAAU,0BAAQoC,SAAS,IAAIzB,KAAKC,IAE1DyB,YAAa,CAACtL,EAAQ6J,EAAK3iB,iBACtBmkB,EAAQ,0BAAQA,SAAS,SACzBnkB,EAAImhB,YAAcrI,EAAOuL,kBACnB,WAAOC,eAAe,GAEzB,IAAI3sB,MAAMwsB,GAAOzB,KAAKC,IAE9B4B,iBAAkB,CAACzL,EAAQ6J,EAAK3iB,kBACxB,IAAIrI,MAAMqI,EAAI+hB,UAAU,0BAAQoC,SAAS,IAAIzB,KAAKC,GACvD3oB,QAAS,CACT2X,EAAE,GAAK3R,EAAIohB,QAAQ,IACnBzP,EAAE,GACFA,EAAE,GAAK3R,EAAIohB,QAAQ,QAGtBoD,YAAa,CAAC1L,EAAQ6J,EAAK3iB,WAEpBmkB,EADQnkB,EAAI+gB,eAAe3H,OAAOuJ,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,KAC5C7J,EAAO2L,YAAc3L,EAAO4L,YAAc5L,EAAO6L,mBAChE,IAAIhtB,MAAMwsB,GAAOzB,KAAKC,IAE9BiC,mBAAoB,CAAC9L,EAAQ6J,EAAK3iB,iBAC3BqU,EAAStc,KAAKoD,IAAI,EAAG2d,EAAO+L,cAC5BhM,EAAQ7Y,EAAI+gB,eAAe3H,OAAOuJ,EAAI,GAAKtO,EAAQ,EAAGsO,EAAI,GAAKtO,GAC/D8P,EAAQpsB,KAAKoD,IAAI,EAAGpD,KAAK+sB,oBAAsBC,gBAAgB,IAAMjM,EAAOkM,8BAC3E,IAAIrtB,MAAMwsB,GAAOzB,KAAKC,IAE9BsC,cAAe,CAACC,EAASvC,EAAK3iB,IACtB,IAAI,IAAIrI,MAAM,KAAKqC,KAAI,CAACmrB,EAAGrsB,WAC3BiG,EAAwB,EAApBhH,KAAKC,MAAMc,EAAI,GAAS,EAAIkH,EAAIohB,QAAQ,GAAKuB,EAAI,SAGpD,CAAC5jB,EAFEhH,KAAKoD,IAAI6E,EAAIkhB,SAAUP,GAAQ5H,GAAM,EAAG,GAAIha,KACxB,EAApBhH,KAAKC,MAAMc,EAAI,GAAS,EAAIkH,EAAIohB,QAAQ,GAAKuB,EAAI,OAI7Dc,UAAW,CAAC3K,EAAQ6J,EAAK3iB,IACjB0jB,GAAaf,QAAK7J,WAAQsM,MAAOplB,GAAKqlB,YACrC3B,GAAa/R,QAAGmH,WAAQwM,MAAOtlB,KAGxCulB,cAAe,CAACzM,EAAQ6J,EAAK3iB,wBAErBwlB,GAAU7C,EADP3iB,EAAIohB,QAAQ,0BAAQO,UAAU,GAAK3hB,EAAIohB,QAAQ,0BAAQO,UAAU,eAAaA,UAAU,8BAAc8D,YAAY,KAG7HC,YAAa,CAACR,EAASvC,EAAK3iB,WACrBmkB,EAAQ,EAAInkB,EAAIohB,QAAQ,SACvB,IAAI,IAAIzpB,MAAMwsB,IAAQnqB,KAAI,IAAM,CACtC2oB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrB,EAAIphB,EAAIohB,QAAQ,IAChBuB,EAAI,GAAK3iB,EAAIohB,QAAQ,QAGvBuE,KAAM,CAAC7M,EAAQ6J,EAAK3iB,WACbmkB,EAAQ,EAAInkB,EAAIohB,QAAQphB,EAAIohB,QAAQphB,EAAI+hB,gBAAUjJ,WAAQqL,eACzD,IAAI,IAAIxsB,MAAMwsB,IAAQnqB,KAAI,IAAM,CACtC2oB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrBphB,EAAIohB,QAAQ,KACZuB,EAAI,GAAK3iB,EAAIohB,QAAQ,QAGvBwE,UAAW,CAAC9M,EAAQ6J,EAAK3iB,WAClBmkB,EAAQnkB,EAAIohB,QAAQ,EAAIphB,EAAIohB,QAAQphB,EAAI+hB,gBAAUjJ,WAAQqL,eACzD,IAAI,IAAIxsB,MAAMwsB,IAAQnqB,KAAI,IAAM,CACtC2oB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrBphB,EAAIohB,QAAQ,KACZuB,EAAI,GAAK3iB,EAAIohB,QAAQ,QAGvByE,UAAW,CAACX,EAASvC,EAAK3iB,IAElBwlB,GAAU7C,EADP5qB,KAAKoD,IAAI6E,EAAIkhB,SAAUP,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,OAG3DmD,wBAAyB,CAACZ,EAASvC,EAAK3iB,WACjCf,EAAIlH,KAAKoD,IAAI6E,EAAIkhB,SAAUP,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,aACnD6C,GAAU7C,EAAK3iB,EAAIohB,QAAY,EAAJniB,KAEnC8mB,wBAAyB,CAACb,EAASvC,EAAK3iB,IAEhCwlB,GAAU7C,EADP5qB,KAAKoD,IAAI6E,EAAIkhB,SAAUP,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,OAG3DqD,QAAS,CAACd,EAASvC,EAAK3iB,IAChB,CAAC,CACP2iB,EAAI,GAAK,EAAI3iB,EAAIohB,QAAQ,GACzBuB,EAAI,GACJA,EAAI,GAAK,EAAI3iB,EAAIohB,QAAQ,KAG3B6E,UAAW,CAACnN,EAAQ6J,EAAK3iB,gBACuB,IAA3CA,EAAIohB,oBAAgB6C,UAAU,GAAK,IAAW,OAC3ChlB,EAAIe,EAAIohB,QAAQphB,EAAIohB,QAAQ,KAAW,MACzCniB,EAAIe,EAAIkhB,UAAsD,GAA1ClhB,EAAIohB,mCAAiB6C,UAAU,GAAK,GAAS,OAG7D,CAAC,CAFEjkB,EAAIohB,QAAQ,IAAMuB,EAAI,GAEpB1jB,EADFe,EAAIohB,QAAQ,IAAMuB,EAAI,YAI3B,IAERuD,KAAM,CAAChB,EAASvC,IACR,CAACA,GAETwD,MAAO,CAACrN,EAAQ6J,EAAK3iB,sBAEbwlB,GAAU7C,EADP3iB,EAAIohB,mCAAiBgF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,KAGvGC,aAAc,CAACzN,EAAQ6J,EAAK3iB,sBAEpBwlB,GAAU7C,EADP3iB,EAAIohB,QAAQphB,EAAIohB,mCAAiBgF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,MAGnHE,kBAAmB,CAAC1N,EAAQ6J,EAAK3iB,wBAEzBwlB,GAAU7C,EADP3iB,EAAIohB,QAAQphB,EAAIohB,QAAQphB,EAAIohB,mCAAiBgF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,+BAAeA,iBAAiB,MAG/JG,gBAAiB,CAACvB,EAASvC,EAAK3iB,IAExBwlB,GAAU7C,EADP3iB,EAAIohB,QAAQuB,EAAI,GAAK,KAGhC+D,oBAAqB,CAACxB,EAASvC,IAEvB6C,GAAU7C,EADPhC,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,MAGpCgE,MAAO,CAACzB,EAASvC,EAAK3iB,IAEdwlB,GAAU7C,EADP3iB,EAAIohB,QAAQuB,EAAI,GAAK,KAGhC1e,OAAQ,CAACihB,EAASvC,EAAK3iB,IACf,CAAC,CACP2iB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrBuB,EAAI,GACJA,EAAI,GAAK3iB,EAAIohB,QAAQ,MAGvBwF,2BAA4B,CAAC9N,EAAQ6J,mBAC9BxiB,EAASwgB,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,KAClCvnB,EAAM+E,6BAAkB0hB,uBACxB1mB,EAAMgF,6BAAkB2hB,iBAAiBxI,EAAAA,UACvCqJ,EAAI,GAAKvnB,GAAOunB,EAAI,GAAKxnB,EAAO,CAACwnB,GAAO,IAEjDkE,WAAY,CAAC/N,EAAQ6J,EAAK3iB,kBACe,IAApCA,EAAIohB,QAAQ,WAAO6C,UAAU,GACzB,CAAC,CACPtB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrBphB,EAAIohB,QAAQ,KACZuB,EAAI,GAAK3iB,EAAIohB,QAAQ,MAGhB,KAKT,YAAyBuB,EAAeF,EAAkBziB,aACrD8mB,EAAY,CAACnE,aACNoE,KAAYtE,EAAW,CACduE,GAAmBpF,GAAU,0BAAUntB,QAAQ,aAEtDqyB,EAAUzB,YACrB2B,GAAmBpF,GAAUmF,EAAStyB,OAAOsyB,EAAUE,EAAKjnB,gBAGnDinB,KAAOH,IACbjG,WAAWxX,KAAK,CAAC4d,EAAK,IAI5B,MAAMD,GAEF,CACH7C,MAAO,EAAGA,MAAAA,GAASxB,EAAK3iB,IAChB,IAAIrI,MAAMqI,EAAI+hB,gBAAUoC,IAAS,IAAIzB,KAAKC,GAElDuE,qBAAsB,EAAG/C,MAAAA,GAASxB,EAAK3iB,IAC/B,IAAIrI,MAAMqI,EAAI+hB,gBAAUoC,IAAS,IAAIzB,KAAKC,GAC/C3oB,QAAS,CACT2X,EAAE,GAAK3R,EAAIohB,QAAQ,IACnBzP,EAAE,GACFA,EAAE,GAAK3R,EAAIohB,QAAQ,OAGtB+F,iBAAkB,IAAKxE,IACf,CAACA,GAETyE,aAAc,EAAGjnB,OAAAA,GAAUwiB,EAAK3iB,IACxBwlB,GAAU7C,EAjSnB,SAAsBxiB,EAAaH,mBAC7ByI,GAAStI,SAAe,IAAI5E,MAAM,8BACZ,iBAAhB4E,EAAO1L,YACV4yB,GAAclnB,UAEdyhB,GAAUzhB,EAAO1L,WACnB,kBAAmB4yB,GAAclnB,EAAOlK,WACxC,UAAW,OACTmF,EAAMisB,GAAclnB,EAAO0hB,eAC3B1mB,EAAMksB,GAAclnB,EAAO2hB,sBAC1B1mB,EAAM4E,EAAIohB,QAAQjmB,EAAMC,EAAM,OAEjC,mBAAoB,OAClBA,EAAMisB,GAAclnB,EAAO0hB,eAC3B1mB,EAAMksB,GAAclnB,EAAO2hB,eAC3B5I,EAAIlZ,EAAIohB,QAAQjmB,EAAMC,cAAckqB,SAAS,GAAK,UACjDlqB,EAAM4E,EAAIohB,QAAQlI,cAAYoM,SAAS,QAE1C,wBAAyB,OACvBlqB,EAAMisB,GAAclnB,EAAO0hB,eAC3B1mB,EAAMksB,GAAclnB,EAAO2hB,eAC3BwD,EAAQ,WAAOA,SAAS,EACxBgC,EAAKlsB,EAAMkqB,EAAQtlB,EAAIohB,QAAQjmB,EAAMC,EAAMkqB,EAAQ,GACnDnM,EAAK/d,EAAM4E,EAAIohB,QAAQkG,EAAKlsB,UAC3BA,EAAM4E,EAAIohB,QAAQjI,EAAK/d,EAAMkqB,OAEhC,YAAa,OACXlqB,EAAMisB,GAAclnB,EAAO0hB,eAC3B1mB,EAAMksB,GAAclnB,EAAO2hB,eAC3ByF,EAAU,WAAOA,WAAW,KAC9BA,GAAWpsB,EAAMC,SACbA,EAAM4E,EAAIohB,QAAQjmB,EAAMC,EAAM,SAEhCksB,KAAYlsB,EAAMmsB,GAAW,EAC7BpO,EAAMhe,EAAMC,EAAOksB,SAClBlsB,EAAM4E,EAAIohB,QAAQjI,EAAK,GAAKnZ,EAAIohB,QAAQkG,EAAK,iBAEtC,IAAI/rB,MAAM,2BAA2B4E,EAAO1L,SA4PrC+yB,CAAarnB,EAAQH,IAE5C6lB,UAAW,IAAKlD,EAAK3iB,IAEbwlB,GAAU7C,EADP5qB,KAAKoD,IAAI6E,EAAIkhB,SAAUP,GAAQ5H,GAAM,EAAG,GAAI4J,EAAI,OAG3D8E,UAAW,IAAK9E,EAAK3iB,IACb,CAAC,CACP2iB,EAAI,GAAK3iB,EAAIohB,QAAQ,IACrBuB,EAAI,GACJA,EAAI,GAAK3iB,EAAIohB,QAAQ,MAGvBsG,kBAAmB,EAAG1C,qBAAAA,EAAsBH,aAAAA,EAAcE,aAAAA,GAAgBpC,EAAK3iB,WACxEqU,EAAStc,KAAKoD,IAAI,EAAG0pB,GACrBhM,EAAQ7Y,EAAI+gB,eAAe3H,OAAOuJ,EAAI,GAAKtO,EAAQ,EAAGsO,EAAI,GAAKtO,GAC/D8P,EAAQpsB,KAAKoD,IAAI,EAAGpD,KAAK+sB,mBAA+B,IAAME,WAC7D,IAAIrtB,MAAMwsB,GAAOzB,KAAKC,IAE9BgF,sBAAuB,EAAGlD,YAAAA,EAAaC,YAAAA,EAAaC,YAAAA,GAAehC,EAAK3iB,WACjE6Y,EAAQ7Y,EAAI+gB,eAAe3H,OAAOuJ,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,YAE3D,IAAIhrB,MADGkhB,EAAQ4L,EAAcC,EAAcC,GAC1BjC,KAAKC,IAE9BiF,cAAe,EAAGC,UAAAA,EAAWC,SAAAA,GAAYnF,EAAK3iB,IACtC,CAAC,CACP2iB,EAAI,GAAK3iB,EAAI+hB,UAAU8F,GACvBlF,EAAI,GAAK3iB,EAAI+hB,UAAU+F,GACvBnF,EAAI,GAAK3iB,EAAI+hB,UAAU8F,KAGzBE,cAAe,EAAG9D,OAAAA,GAAUtB,EAAK3iB,IACzBA,EAAImhB,YAAc,aAAe,GAAK,CAACwB,GAAO,aCjbtDxmB,YAAY9D,iBAVY,mBACK,mBACC,mBACA,mBACD,mBACA,yBAEmB,gBACtB,QAGnBJ,EAAS,IAAIghB,EAAa5gB,QAC3B2vB,oBAAsB,IAAIhH,EAAY/oB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACjGgwB,oBAAsB,IAAIjH,EAAY/oB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACjGiwB,gBAAkB,IAAIlH,EAAY/oB,KAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACpEkwB,WAAa,IAAInH,EAAY/oB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGvFkE,MAAMisB,EAAelR,EAAejC,EAAeoT,EAAiBnoB,QACrEkoB,SAAWA,OACXE,WAAwC,EAA3BF,EAASG,qBACtBC,YAAuC,EAAzBJ,EAASK,mBACvBC,YAAc3wB,KAAKC,MAAMowB,EAASjoB,OAAS7D,KAAKksB,aAEjDJ,EAASO,WAAazR,EAAQ,MACzB,EAAY,EAARA,IACJ,EAAY,EAARjC,QAER2T,WAAa,SAAoB,KAAM,WACvCC,WAAa,IAAgB,KAAM,SAEnCC,iBAAmBnxB,MAAMuI,GAAOwiB,KAAK,WACrC2F,QAAUA,EAGTlsB,mBAAmB4C,SACnB2K,EAAO/R,MAAM2E,KAAKosB,YAAcpsB,KAAKksB,aACrCO,EAAKhxB,KAAKC,MAAM+G,EAAIzC,KAAKgsB,YACzBU,EAAKjxB,KAAKC,MAAM+G,EAAIzC,KAAKgsB,YAAchsB,KAAKgsB,WAC5CW,EAAS3sB,KAAK4sB,gBAAgBH,GAC9BI,EAAS7sB,KAAK4sB,gBAAgBH,EAAK,WAEhC9pB,EAAI3C,KAAKosB,YAAc,EAAGzpB,GAAK,EAAGA,GAAK,UACtCmqB,EAAK9sB,KAAKksB,YAAaY,GAAM,EAAGA,GAAM,EAAG,OAC3CC,EAAKD,EAAK9sB,KAAKksB,cACXvpB,EAAI3C,KAAKksB,YAAcY,IzBmEfpuB,EyBlEFquB,EzBkEapuB,EyBlET+tB,EzBkEoB9tB,EyBlEhB+tB,EAAOhqB,GzBkEoBqqB,EyBlEhBL,EAAOhqB,EAAE,GzBkEkB3D,EyBlEd6tB,EAAOlqB,GzBkEkB6S,EyBlEdqX,EAAOlqB,EAAE,GzBmEhE5D,GAAKJ,EAAGI,GAAKL,EAAGE,EAAGouB,GAAIjuB,GAAKL,EAAGM,EAAGwW,SADpB9W,EAAWC,EAAWC,EAAWouB,EAAWhuB,EAAWwW,SyB/DpEpI,EAGAvN,gBAAgB4C,SACjBwqB,EAAejtB,KAAKwsB,iBAAiB/pB,EAAIzC,KAAK+rB,YAChDkB,SAAqBA,QAEnB7f,EAAO/R,MAAM2E,KAAKosB,YAAc,GAEhCc,EAAU,QAAUltB,KAAK8rB,SAASqB,SAASC,SAC3CC,EAAS,QAAUrtB,KAAK8rB,SAASqB,SAASG,QAC1CC,EAAWL,EAAUltB,KAAK8rB,SAASqB,SAASK,UAC5CC,EAAUJ,EAASrtB,KAAK8rB,SAASqB,SAASO,SAC1CC,EAAgB3tB,KAAK8rB,SAAS8B,sBAAwB5tB,KAAK6tB,iBAAiBprB,GAAK,UAE9EE,EAAI,EAAGA,GAAK3C,KAAKosB,YAAazpB,GAAK,EAAG,KAC1C4Z,EAAQvc,KAAK8tB,oBAAoBrrB,EAAGE,EAAG3C,KAAK4rB,gBAAgBmC,eAAe,GAAIC,GAAId,EAASG,EAAQE,EAAUE,SAG5GQ,IAFU,EAAQ,EAAJtrB,EAAQ3C,KAAKosB,YAAcuB,GACrB3tB,KAAK8rB,SAASoC,eAAiBluB,KAAK8rB,SAASqC,eAC5CnuB,KAAKssB,YAActsB,KAAKusB,cAC1C0B,KAAqB,EAAI,EAAI,GAElCjuB,KAAK8rB,SAASsC,UAAU1sB,KAAO,MAC1B2sB,GACPruB,KAAK8rB,SAASsC,UAAU1tB,OACxB6b,QACM6P,YAAczpB,EAAK3C,KAAK8rB,SAASsC,UAAUtW,QAAY9X,KAAK8rB,SAASsC,UAAU1sB,OAInF1B,KAAK8rB,SAASwC,aAAa5sB,KAAO,MAC7B2sB,GACPruB,KAAK8rB,SAASwC,aAAa5tB,OAC3B6b,KACMvc,KAAK8rB,SAASwC,aAAaxW,QAAY9X,KAAK8rB,SAASwC,aAAa5sB,SAGrEiB,GAAK4Z,cAGNiQ,iBAAiB/pB,EAAIzC,KAAK+rB,SAAW3e,EACnCA,EAGAvN,iBAAiB4C,SAClB8Z,EAAQvc,KAAK6rB,WAAW/O,OAAW,IAAJra,EAAS,GAAIzC,KAAK6rB,WAAWkC,eAAe,GAAIC,GAAI,EAAG,GAAG,GAEzFrvB,EAAQ,WADH4d,EAAQ,EAAc,IAARA,EAAcA,GACb,SAClB5d,EAAI,EAAS,oBAAJA,EAA4C,WAAjBlD,KAAKqD,IAAIH,EAAG,GAGjDkB,oBAAoB4C,EAAWE,EAAWoW,EAAWmU,EAAiBG,EAAgBE,EAAkBE,OAC3G/uB,EAAI,EACJC,EAAI,EACJC,EAAI,EACJouB,EAAI,UAECxwB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,OACzB+xB,EAAK7J,EAAY8J,KAAK/rB,EAAIyqB,EAAUF,GACpCyB,EAAK/J,EAAY8J,KAAK7rB,EAAI0qB,EAASL,GACnC0B,EAAKhK,EAAY8J,KAAKzV,EAAImU,EAAUF,GACpChuB,EAAIquB,EAASL,EAEb2B,EAAgB3uB,KAAK0rB,oBAAoBqC,eAAevxB,GAC1DmyB,OACEA,EAAc7R,OAAOyR,EAAIE,EAAIC,EAAI1vB,EAAG2D,EAAI3D,GAAKguB,SAG7C4B,EAAgB5uB,KAAK2rB,oBAAoBoC,eAAevxB,MAC1DoyB,OACEA,EAAc9R,OAAOyR,EAAIE,EAAIC,EAAI1vB,EAAG2D,EAAI3D,GAAKguB,GAG/CxwB,EAAI,EAAG,OACJqyB,EAAY7uB,KAAK4rB,gBAAgBmC,eAAevxB,GAClDqyB,OACEA,EAAU/R,OACd4H,EAAY8J,KAAK/rB,EAAI8qB,EAAWP,GAChCtI,EAAY8J,KAAK7rB,EAAI8qB,EAAUT,GAC/BtI,EAAY8J,KAAKzV,EAAIwU,EAAWP,GAChCS,EAAUT,EACVrqB,EAAI8qB,EAAUT,GACXA,MAID,SAGCqB,GAAY3vB,EAAI,IAAKC,EAAI,OAAU,GAAK,GAAK,IChItD,MAEMmwB,GAAmD,CACxDC,gBAAiB,CAAC,IAAK,IAAK,KAC5BC,kBAAmB,CAAC,GAAI,GAAI,KAC5BC,iBAAkB,CAAC,IAAK,IAAK,GAC7BC,kBAAmB,CAAC,GAAI,GAAI,IAC5BC,sBAAuB,CAAC,GAAI,GAAI,IAChCC,oBAAqB,CAAC,GAAI,GAAI,IAC9BC,wBAAyB,CAAC,GAAI,IAAK,IACnCC,iBAAkB,CAAC,GAAI,GAAI,GAC3BC,mBAAoB,CAAC,GAAI,GAAI,IAC7BC,iBAAkB,CAAC,IAAK,IAAK,IAC7BC,sBAAuB,CAAC,IAAK,IAAK,IAClCC,uBAAwB,CAAC,IAAK,GAAI,IAClCC,2BAA4B,CAAC,IAAK,GAAI,IACtCC,0BAA2B,CAAC,GAAI,IAAK,KACrCC,mBAAoB,CAAC,GAAI,GAAI,IAC7BC,sBAAuB,CAAC,IAAK,IAAK,MAGnC,IAAI7X,GACA8X,GACAC,GAAsB,GAC1B,MAAMC,GAAgB,IAAIzyB,sBAEU2a,EAAYrU,EAAgBsU,gBAC3Dc,GAAad,EAAQje,QAAS,QAAS,CACtC+e,GAAad,EAAQje,QAAS,iBAC3B+1B,GAAe9X,EAAQje,eAGxB2xB,SAAEA,EAAUvxB,aAsHpB,SAAmB4d,EAAgBC,SAC5B0T,EAAWqE,EAAuBC,SAAS5W,YAAUC,YAAYtB,IAEjEE,EAAW,CAACF,EAAO,GAAGC,EAAQrc,OAAQqc,EAAQK,WAC/ClZ,GAAU8Y,EAAUJ,UACX9Y,GAAUkZ,MACV,GACTa,GAAad,EAAQje,QAAS,UAAW,OACtCmjB,EAAc,IAAI/E,EAAWC,EAAW4E,OAAO,eACpC,IAAIiT,EAAoBjY,EAAQrc,KAAMuhB,EAAawO,OAC9D,OACAxO,EAAc,IAAIgT,GAAuB,cAC9B,IAAIC,EAAgCnY,EAAQrc,KAAMuhB,EAAawO,SAG3E,CACNA,SAAAA,EACAvxB,UAAWw1B,IAvIqBS,CAAUrY,EAAOC,GAE3Crb,EAAQ,IAAI0zB,IAAYrY,EAAQN,OAAQM,EAAQxU,MAAOkoB,EAASvP,MAAMmU,KAAM5E,EAASvP,MAAM1Y,UAC3F8sB,SAASC,EAAWxY,EAAQK,aAE5BoY,EAAO/sB,EAAIsJ,aACR3K,EAAI,EAAGA,EAAI2V,EAAQxU,MAAOnB,GAAK,UAC9BE,EAAI,EAAGA,EAAImpB,EAASvP,MAAM1Y,OAAQlB,GAAK,EAAG,OAC5CnG,EAAQ,EAAJiG,EAAsC,KAApB8Z,MAAM1Y,OAAOlB,EAAE,GAASmB,EAAIF,MAClDktB,EAAQ/zB,EAAMg0B,cAAc,CAACtuB,EAAI2V,EAAQN,OAAQnV,EAAImpB,EAASvP,MAAMmU,KAzCpE,IA0CAlT,EAAQ,YAAOsT,EAAME,UAAUl2B,eAAe,CAAC,EAAG,EAAG,KACtD0B,GAAKghB,EAAM,KACXhhB,EAAI,GAAKghB,EAAM,KACfhhB,EAAI,GAAKghB,EAAM,KACfhhB,EAAI,GAAK,iBAMXjC,EAAY,IAAI02B,GAAuB7Y,EAAQrc,QAC3Cm1B,MAAM/Y,EAAMoE,MAAO,WAAQ+P,cAAc,EAAG,WAAQC,cAAc,EAAGnU,EAAQN,OAAQM,EAAQxU,aACjGwJ,EAAOtJ,EAAIsJ,KACX+jB,EAAkB,EAAZrtB,EAAIF,cACPnB,EAAI,EAAGA,EAAI2V,EAAQxU,MAAOnB,GAAK,EAAG,OACpC8Z,EAAQhiB,EAAU62B,mBAAmB3uB,EAAI2V,EAAQN,QAAQuZ,kBACtD1uB,EAAI,EAAGA,EAAIwV,EAAMoE,MAAM1Y,OAAQlB,GAAK,EAAG,OACzCnG,EAAImG,EAAIwuB,EAAU,EAAJ1uB,EACd+a,EAAQ8T,GAAS/U,EAAO5Z,KACzBnG,GAAKghB,IACLhhB,EAAI,GAAKghB,IACThhB,EAAI,GAAKghB,IACThhB,EAAI,GAAK,wBAaqB2b,EAAYrU,EAAgBsU,SAC3D7O,GAAEA,WAAIuiB,SAyBb9oB,eAAqCmV,EAAYC,SAC1C8X,GAAe9X,EAAQje,eAEvBwB,EAAS41B,EAAgBnU,OAAOhF,EAAQrc,MAAMy1B,iBAC9C1F,EAAW2F,EAAcrB,SAAS,CACvCsB,UACA7tB,OAAQ,IACRooB,gBAAiB,EACjBE,cAAe,EACfgB,SAAU,CAAEC,SAAU,EAAGE,QAAS,EAAGE,UAAW,GAAIE,SAAU,KAC9DY,aAAc,CAAE5tB,OAAQ,SAAWgB,KAAM,EAAGoW,OAAQ,GACpDsW,UAAW,CAAE1tB,gBAAmBgB,KAAM,EAAGoW,OAAQ,GACjD6Z,eAAgB,CAAE7Z,OAAQ,KAAOC,OAAQ,EAAGC,WAAY,KAEnD4Z,EAAaC,EAAgBzB,SAASjY,SAGrC,CACN5O,GAHUqoB,EAAWE,OAAO,IAAIC,EAAYC,QAAQr2B,EAAQmwB,IAI5DA,SAAAA,GA5C8BmG,CAAsB9Z,EAAOC,GAEtDnd,EAAMI,MAAM+c,EAAQxU,MAAQkoB,EAASjoB,YACvC/E,EAAMke,EAAAA,EACNne,eACK4D,EAAI,EAAGA,EAAI2V,EAAQxU,MAAOnB,GAAK,UAC9BE,EAAI,EAAGA,EAAImpB,EAASjoB,OAAQlB,GAAK,EAAG,OACtCnG,EAAIiG,KAAcoB,OAAOlB,EAAE,GAAKyV,EAAQxU,MACxCsuB,EAAU3oB,EAAG4oB,QAAQN,EAAgBhb,QAAQpU,EAAI2V,EAAQN,OAAQnV,EAAG,MACpElH,KAAKqD,IAAIA,EAAKozB,KACdz2B,KAAKoD,IAAIA,EAAKqzB,KAChB11B,GAAK01B,QAIL9kB,EAAOtJ,EAAIsJ,aACR5Q,EAAI,EAAGA,EAAI4b,EAAQxU,MAAQkoB,EAASjoB,OAAQrH,GAAK,EAAG,OACtDghB,EAAQ/hB,KAAKC,MAAM02B,EAAWn3B,EAAIuB,GAAIsC,EAAKD,EAAK,EAAG,QACpD,EAAIrC,GAAKghB,IACT,EAAIhhB,EAAI,GAAKghB,IACb,EAAIhhB,EAAI,GAAKghB,IACb,EAAIhhB,EAAI,GAAK,KA2BpB,MAAM61B,GAAyD,CAC9D,CAAC,iBAAkBC,GACnB,CAAC,4BAA6BT,IAG/B7uB,kBAA8B7I,eACvBo4B,EAAiB,YAAct2B,IAAI9B,MAAY,IAAIq4B,EAAS,IAAIha,EAAW,SAAU,SACtFyX,GAAc3Y,IAAInd,WAChB6Q,QAAQC,IAAIonB,GAAW30B,KAAI,EAAEtF,EAAIwG,KAOzCoE,eAAsE7I,EAAoBs4B,EAAmCr6B,EAAYW,SAClImF,uBZnE+BwP,EAAsBC,WACnDf,MAAM,qBAAqBc,KAAaC,WAC1CxT,EAAUiD,GAAOwQ,SAAStQ,SAAUuM,EAAEzR,KAAOsV,UAC7CoC,GAAc3V,aAEb+D,QAAgBmP,GAAQ,GAAGC,GAAOnT,EAAS,iBAAiBwT,0BAC3D,IAAInQ,UAA2BwN,QAAQC,IAC7C/M,EAAQR,KAAIsF,MAAOhE,GAClB,CAACA,QAASqO,GAAQ,GAAGC,GAAOnT,EAAS,0BAA0BwT,KAAY3O,qBAErEA,SACF,IAAIC,MAAM,qCAAqC0O,cAAqBzO,GAAQF,OYwD7D0zB,CAAgBv4B,EAAS/B,GACzCuV,EAAW,IAAI6kB,EAAuBha,EAAW4E,OAAOhlB,cAClD+F,EAAKxE,KAAUuE,EAAQA,YACzBqP,SAASiL,EAAW/F,MAAMtU,GAAMpF,EAAMq3B,SAASz2B,MAEpD4T,SAASI,EAASxP,IAAKwP,GAbmBglB,CAAcx4B,EAASo4B,EAAgBn6B,EAAIwG,SAC3EzC,IAAIhC,EAASo4B,MAETK,iBAAiBC,QAAQC,OAAOP,EAAeQ,WAAWva,EAAW4E,OAAO,iCAC5E4V,MAAMH,QAAQC,OAAOP,EAAeQ,WAAWva,EAAW4E,OAAO,oBAiCrF,YAAkBb,EAAiB5Z,UAC9B4Z,EAAM5Z,GAAK,EACP,EAEJ4Z,EAAM5Z,EAAE,GAAK,EACT,IAED,IAGR,SAIC9C,YACkBozB,EACjBrvB,EACA8sB,EACA7sB,oBAEKqvB,KAAO,QACPC,OAAS,IAAI93B,MAAMI,KAAK+sB,KAAK5kB,EAAQ,IAAM,IAC9ClG,KAAI,CAACmrB,EAAGrsB,WACFiG,MAAa,GAAKjG,EAClB42B,EAASpD,GAAW1yB,SAAUsB,EAAEynB,IAAI,KAAO5jB,WAC7C2wB,QACEF,KAAK12B,IAAK,EACR42B,GAED,IAAIC,EAAM3C,EAAM7sB,EAAQyvB,EAASlW,OAAO3a,EAAG8wB,OAI9C1zB,SAAStF,EAAgCi5B,QAC1CL,OAAO92B,SAAQ,CAACo3B,EAAOj3B,KACtBwD,KAAKkzB,KAAK12B,OACJ4pB,KAAKqN,GAAO,KACZC,aAAaD,EAAOD,QACzBN,KAAK12B,IAAK,KACJuQ,KAAK0mB,OAKZ5zB,cAAcwmB,SACdsN,KAAkB,IAAM,SAAWV,MAAQ,UAC1CjzB,KAAKmzB,OAAOQ,GAAY5C,cAAc1K,ICjO/C,MAAM7O,GAAS,CAAC,SAAU,cAAe,WAAY,kBAAmB,UAAW,aAEtEoc,GAAqB,EAAG93B,MAAAA,EAAOsR,KAAAA,EAAMymB,MAAAA,EAAO15B,QAAAA,kBAClDmZ,OAAEA,GAAWwD,MACZ6B,EAAOmb,GAAYvyB,EAAS,IAC5BwyB,EAASC,GAAczyB,OAAqD,IAC5E0yB,EAAQC,GAAa3yB,EAAS,IAAI4yB,IAA2B,CAAC,YAC/Drc,EAASlX,EAAyB,CAAC,EAAG,IACtC+Q,EAAM/Q,EAAO,GACbwzB,EAAgBxzB,OAAe,GAE/B7E,EAAOP,OAAOM,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,WAC/Coc,EAAUtP,GAAQ,QAClB6qB,kBA0FoBl5B,MACP,iBAARA,EAAkB,GACXw1B,EAAuBC,SAAS5W,YAAUC,YAAY9e,IACxD05B,mBAAqB,mBAAqB,6BAElD15B,EAAIwC,QAAQ,cAAe,SAC7B,gBACA,kBACG,CACNsa,YAAa,CAAE2D,eAAiBC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAC9D3D,SAAU,CAAE0D,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACzD1D,gBAAiB,CAAEyD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACzEzD,QAAS,CAAEwD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IACrDxD,UAAW,CAAEuD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1D3C,MAAO,CAAE0C,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,SAE7C,UACA,yBACG,CACN5D,YAAa,CAAE2D,YAAa,EAAGC,WAAY,CAAC,IAC5C3D,SAAU,CAAE0D,YAAa,EAAGC,WAAY,CAAC,IACzC1D,gBAAiB,CAAEyD,YAAa,EAAGC,WAAY,CAAC,IAChDzD,QAAS,CAAEwD,YAAa,EAAGC,WAAY,CAAC,IACxCxD,UAAW,CAAEuD,YAAa,EAAGC,WAAY,CAAC,IAC1C3C,MAAO,CAAE0C,YAAa,EAAGC,WAAY,CAAC,mBAGhC,CACN5D,YAAa,CAAE2D,eAAiBC,WAAY,CAAC,EAAG,IAChD3D,SAAU,CAAE0D,eAAiBC,WAAY,CAAC,EAAG,IAC7C1D,gBAAiB,CAAEyD,eAAiBC,WAAY,CAAC,EAAG,IACpDzD,QAAS,CAAEwD,eAAiBC,WAAY,CAAC,EAAG,IAC5CxD,UAAW,CAAEuD,eAAiBC,WAAY,CAAC,EAAG,IAC9C3C,MAAO,CAAE0C,YAAa,EAAGC,WAAY,CAAC,MA1HjCiZ,CAAWx4B,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,iBACjD,CAAC23B,IACE1b,EAAQ0b,EAmFf,SAAwBzmB,EAAWkL,UAC3BnK,KAAKC,UAAU,CAAChB,EAAMkL,IApFPic,CAAennB,EAAMkL,GAAY,GACjDngB,EAAe,WAAKA,eAAMgF,QAAQ,cAAe,KAEjD6E,OAAEA,SAAQwB,GAAWgxB,GAAU,CACpC9yB,SACQ,CAAC,IAAMiQ,EAAI9Q,QAAS,IAAM8Q,EAAI9Q,oBAE3BiD,SACJsU,EAAU,CAAEE,QAAAA,EAAmBiF,YAAa,GAAI0W,OAAAA,EAAQnc,OAAQA,EAAOjX,QAAS8X,MAAAA,EAAO5c,KAAAA,EAAM4V,IAAKA,EAAI9Q,QAAS1G,QAAAA,wBJiBzFge,EAAYrU,EAAgBsU,mBACpDkF,YAAEA,SAAsBkT,GAAUrY,EAAOC,GAEzChL,EAAOtJ,EAAIsJ,KACXsf,GAAMjxB,KAAKg5B,MAAMrc,EAAQN,OAAO,IAAM,IAAMM,EAAQzG,IAAM,EAC1D+iB,GAAMj5B,KAAKg5B,MAAMrc,EAAQN,OAAO,IAAM,IAAMM,EAAQzG,IAAM,EAC1Dwf,EAAkB,EAAZrtB,EAAIF,MAAYwU,EAAQzG,IAC9BgjB,EAAM,EAAIvc,EAAQzG,IAElBijB,EAAiB,CAAClI,EAAKtU,EAAQO,WAAc+T,GAAMtU,EAAQO,MAAOP,EAAQzG,IAAMyG,EAAQO,OACxFkc,EAAiB,CAACH,EAAKtc,EAAQO,WAAc+b,GAAMtc,EAAQO,MAAOP,EAAQzG,IAAMyG,EAAQO,OAExFE,EAAUT,EAAQ6b,OAAO3c,IAAI,UAAwB,WAAYmE,8BAAemZ,EAAQ,GAAI,GAAI,KAAMC,QAA7D,EACzCZ,EAAS,IAAI7b,EAAQ6b,QAAQzpB,WAAkB,WAANsqB,IACzCvY,EAA0B,IAAlB0X,EAAOj5B,QAA2B,WAAY+5B,kBAAxB,cAAyCH,EAAQ,GAAI,GAAI,KAAMC,WAE1FpyB,EAAI,EAAGA,EAAI,IAAKA,GAAK2V,EAAQzG,YAC5BoH,EAAI,EAAGA,EAAI,IAAKA,GAAKX,EAAQzG,IAAK,OACpCnV,EAAIuc,EAAIoY,EAAM1uB,EAAIkyB,EAClBpO,EAAK9jB,EAAI2V,EAAQzG,IAAO,IAAMyG,EAAQzG,IAAMoH,EAAIX,EAAQzG,IACxDqjB,KAActI,GAAMtU,EAAQO,MAC5Bsc,KAAcP,GAAMtc,EAAQO,UAC9B6E,EAAgB,CAAC,GAAI,GAAI,OACzBpF,EAAQ6b,OAAO3c,IAAI,YAEd4d,IADM,0BAAS3O,MAAMjJ,EAAY6X,SAASH,EAAQ,GAAIC,IAClCn6B,WAAYsd,EAAQmF,qBACtChB,GAAS0X,EAAO,GAAI,OACxBt6B,EAAQ4iB,EAAMgK,GAAG0N,EAAO,KACvBn1B,EAAKD,GAAO2Y,GAAOyc,EAAO,IAC3BmB,KAAsBt2B,MAAcA,GAAO,MACzC,CAACs2B,EAAYA,EAAYA,KAE7B54B,GAAKghB,EAAM,KACXhhB,EAAI,GAAKghB,EAAM,KACfhhB,EAAI,GAAKghB,EAAM,KACfhhB,EAAI,GAAK,KInDR64B,CAASjoB,EAAMtJ,EAAKsU,GACN,IAAhBzG,EAAI9Q,uBACMuzB,EAAcvzB,WACbA,QAAUY,YAAW,OAC9BZ,QAAU,QAEZ,oBAGQgC,EAAIC,KACTjC,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAU,IAALgC,IACjChC,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAU,IAALiC,eAC3BsxB,EAAcvzB,WACvBA,QAAmB,gBAAT1I,EAAyB,EAAI,qBAG9BsK,EAAGE,SACVyV,EAAU,CAAEE,QAAAA,EAAmBiF,YAAa,GAAI0W,OAAAA,EAAQnc,OAAQA,EAAOjX,QAAS8X,MAAAA,EAAO5c,KAAAA,EAAM4V,IAAK,EAAGxX,QAAAA,GACrGse,uBJsCsBN,EAAY1V,EAAWsW,EAAWX,eAC1DkF,YAAEA,SAAsBkT,GAAUrY,EAAOC,IAExCkd,EAAIC,GAmJZ,UAAkB9yB,EAAGsW,GAAsBX,SAGnC,IAFSA,EAAQN,OAAO,GAAK,IAAMM,EAAQzG,IAAM,GAAKyG,EAAQO,SACrDP,EAAQN,OAAO,GAAK,IAAMM,EAAQzG,IAAM,GAAKyG,EAAQO,OArJpD6c,CAAQ,CAAC/yB,EAAGsW,GAAIX,UAC1BnT,GACNwT,MAAO6E,EAAY6X,SAASG,EAAI,GAAIC,GAAIz6B,YACrC,WAAY26B,4BAAaH,EAAI,GAAIC,II5CfJ,CAAS/nB,EAAM3R,KAAKC,MAAU,IAAJ+G,GAAUhH,KAAKC,MAAU,IAAJiH,GAAUyV,KAClEK,IAEZ5Y,iBACY,KAEV,CAACsY,EAAOQ,EAAO5c,EAAMk4B,OAEd,KACLJ,MACChzB,QAAmB,gBAAT1I,EAAyB,EAAI,SAG1C,CAACggB,EAAOQ,EAAO5c,EAAMk4B,EAAQJ,UAE1B6B,EAAeC,MACb90B,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAK8X,EAAQgd,IACzC90B,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAK8X,EAAQgd,IACvCA,sBAIR,MAAD,CAAKh9B,MAAM,6BACTo7B,KAAY7uB,GAAD,CAAKrM,MAAOk7B,EAAQtb,MAAiB9f,MAAM,eAC7C,gBAATR,KACCy9B,GAAD,CAASh9B,KAAK,QAAQI,QAASsa,EAAO,qBACpCkE,GAAO9Z,eACDm4B,EAAU5B,EAAO3c,IAAIpO,YACnBhE,GAAD,CAAKrM,MAAOya,EAAO,SAASpK,KAClCpQ,OAAQ+8B,EACR78B,QAAmBsa,EAAVuiB,EAAiB,UAAoB,YAC9C38B,QAAU8F,MACC,IAAIm1B,IAAI,CAACjrB,OACjBjI,0BAII,mBAA0B,iBAAT9I,eAC1B+M,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,YAChCpa,QAAS,IAAMw8B,EAAoB,IAAR/c,OAC3BzT,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,WAChCpa,QAAS,IAAMw8B,EAAY/c,EAAQ,QAE3B,gBAATxgB,KACC+M,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,qBAChCpa,QAAS,IAAM48B,GAAQh6B,wBAEhB2b,gBAAgB,MAAD,CAAK9e,MAAM,iCAClCuM,GAAD,CAAKvM,MAAM,aAAaE,MAAO4G,OAAOvB,QAAQ61B,GAC5CvpB,QAAO,EAAEurB,KAAa,UAANA,IAChBr4B,KAAI,EAAEq4B,EAAGlsB,KAAO,GAAGksB,EAAE,GAAGC,kBAAmBnsB,EAAaosB,QAAQ,OAAM16B,KAAK,WAE7E,SAAD,CAAQoF,IAAKqB,EAAQ4B,MAAM,MAAMC,OAAO,gBClG7BqyB,GAAmB,EAAG9oB,KAAAA,EAAMjT,QAAAA,EAAS05B,MAAAA,YAC3CvgB,OAAEA,GAAWwD,MACZ6B,EAAOmb,GAAYvyB,EAAS,IAC5BxF,EAAMo6B,GAAW50B,EAAS60B,OAE3Bp0B,OAAEA,SAAQwB,GAAWgxB,GAAU,CACpC9yB,SACQ,CAAS,GAARiX,EAAoB,GAARA,cAEV7U,MACAsJ,EAAMtJ,EAAK,CAAE/H,KAAAA,EAAM5B,QAAAA,EAASuH,KAAM,CAAS,GAARiX,EAAY,IAAa,GAARA,QAI1DR,EAAQhK,KAAKC,UAAUhB,aACnB,KACLymB,SAGF,CAAC1b,EAAOQ,EAAO5c,EAAM83B,eAGtB,MAAD,CAAKl7B,MAAM,+BACTuM,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,YAChCpa,QAAS,IAAM46B,EAASr4B,KAAKqD,IAAI,GAAI6Z,EAAQ,QAC7CzT,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,WAChCpa,QAAS,IAAM46B,EAASr4B,KAAKoD,IAAI,EAAG8Z,EAAQ,QAC5CzT,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,qBAChCpa,QAAS,IAAMi9B,EAAQC,WAExB,SAAD,CAAQz1B,IAAKqB,EAAQ4B,MAAM,KAAKC,OAAO,SC9B5BwyB,GAAyB,EAAGjpB,KAAAA,EAAMymB,MAAAA,EAAO15B,QAAAA,oBAC/CmZ,OAAEA,GAAWwD,MACZ/a,EAAMo6B,GAAW50B,EAAS60B,OAC1BE,EAAYC,GAAiBh1B,GAAS,IACtCwyB,EAASC,GAAczyB,OAA6B,GACrDuW,EAASlX,EAAO,GAChB41B,EAAiB51B,OAA2B,GAC5CuX,EAAQhK,KAAKC,UAAU,CAAChB,IAExB1L,EAAO,SAAA,0BAAM6a,gBAAO1Y,UAAU,KAC9B7B,OAAEA,SAAQwB,GAAWgxB,GAAU,CACpC9yB,SACQ,CAACA,EAAMA,cAEJoC,SACJsU,EAAU,CAAEN,OAAQA,EAAOjX,QAAS+C,MAAOE,EAAIF,MAAO7H,KAAAA,EAAM5B,QAAAA,SAC5Ds8B,GAAgBrpB,EAAMtJ,EAAKsU,iBAErBvV,KACLhC,SAAWgC,EAAKnB,qBAGVe,EAAGE,iBACVqyB,EAASv5B,KAAKC,MAAM+G,EAAIf,EAAOoW,EAAOjX,SACtC61B,EAASh1B,EAAOjG,KAAKoD,IAAI,EAAGpD,KAAK+sB,KAAK7lB,EAAIjB,wCAAgB6a,gBAAOmV,SAAS,KACrE,KAAKsD,OAAY0B,MAE7B72B,iBACY,KAEV,CAACsY,EAAOpc,cAED,KACLy6B,EAAe31B,uBACJ21B,EAAe31B,SAE1BgzB,QAECyC,MACYz1B,QAAU81B,aAAY,OAC7B91B,SAAW,QAEhB,SAGH,CAACsX,EAAOpc,EAAM83B,EAAOyC,eAGtB,MAAD,CAAK39B,MAAM,6BACTo7B,KAAY7uB,GAAD,CAAKrM,MAAOk7B,EAASp7B,MAAM,iBACtCi9B,GAAD,CAASh9B,KAAK,OAAOI,QAASsa,EAAO,uBACnCpO,GAAD,CAAKtM,KAAM09B,EAAa,cAAgB,SAAUz9B,MAAOya,EAAO,uBAAwBpa,QAAS,IAAMq9B,GAAeD,QAEtHpxB,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,qBAChCpa,QAAS,IAAMi9B,EAAQC,WAExB,SAAD,CAAQz1B,IAAKqB,EAAQ4B,MAAOlC,EAAMmC,OAAQnC,MCxD/Bk1B,GAAe,EAAGxpB,KAAAA,EAAMymB,MAAAA,EAAO15B,QAAAA,YACrCmZ,OAAEA,GAAWwD,MACZ/a,EAAMo6B,GAAW50B,EAAS60B,OAC1Bzd,EAAOmb,GAAYvyB,EAAS,GAC7BuW,EAASlX,EAAyB,CAAC,EAAG,IACtCuX,EAAQhK,KAAKC,UAAU,CAAChB,KAExBpL,OAAEA,SAAQwB,GAAWgxB,GAAU,CACpC9yB,SACQ,CAAC,IAAK,gBAEHoC,SACJsU,EAAU,CAAEN,OAAQA,EAAOjX,QAAS8X,MAAAA,EAAO5c,KAAAA,EAAM5B,QAAAA,aCT9Bge,EAAYrU,EAAgBsU,SACjDzc,EAAS,IAAIghB,EAAavE,EAAQrc,MAClC4X,EAAS2e,EAAgBlC,SAAS5W,YAAUC,YAAYtB,IACxDoE,EAAQ,IAAIG,EAAY/gB,EAAQgY,GAEhC+Y,GAAMtU,EAAQN,OAAO,GAAK,IAC1B4c,GAAMtc,EAAQN,OAAO,GAAK,IAC1B1K,EAAOtJ,EAAIsJ,aACR3K,EAAI,EAAGA,EAAI,IAAKA,GAAK,UACpBE,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,OAC1BnG,EAAQ,EAAJiG,EAAY,EAAJE,EAAQ,IACpB2yB,KAAU5I,GAAMtU,EAAQO,MACxBmU,KAAU4H,GAAMtc,EAAQO,MACxB6E,EAAwC,OAAzBV,OAAOwY,EAAIxI,EAAI,GAAK,KACpCtwB,GAAKghB,IACLhhB,EAAI,GAAKghB,IACThhB,EAAI,GAAKghB,IACThhB,EAAI,GAAK,MDPF4Q,EAAMtJ,EAAKsU,iBAEXvV,EAAIC,KACTjC,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAU,IAALgC,IACjChC,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAU,IAALiC,QAGvC,CAACqV,EAAOQ,EAAO5c,OAER,KACL83B,SAGF,CAAC1b,EAAOQ,EAAO5c,EAAM83B,UAElB6B,EAAeC,MACb90B,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAK8X,EAAQgd,IACzC90B,QAAQ,GAAKiX,EAAOjX,QAAQ,GAAK8X,EAAQgd,IACvCA,sBAIR,MAAD,CAAKh9B,MAAM,+BACTuM,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,YAChCpa,QAAS,IAAMw8B,EAAoB,IAAR/c,OAC3BzT,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,WAChCpa,QAAS,IAAMw8B,EAAY/c,EAAQ,SACnCzT,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,qBAChCpa,QAAS,IAAMi9B,EAAQC,WAExB,SAAD,CAAQz1B,IAAKqB,EAAQ4B,MAAM,MAAMC,OAAO,UE1C7BgzB,GAAuB,EAAGzpB,KAAAA,EAAMymB,MAAAA,EAAO15B,QAAAA,oBAC7CmZ,OAAEA,GAAWwD,MACZ/a,EAAMo6B,GAAW50B,EAAS60B,OAC1B3d,EAAOqe,GAAYv1B,EAAS,qBAC5BgrB,EAAYwK,GAAiBx1B,EAAS,KACtC+qB,EAAY0K,GAAiBz1B,EAAS,KACtC+0B,EAAYC,GAAiBh1B,GAAS,IACtCwyB,EAASC,GAAczyB,OAA6B,GACrDuW,EAASlX,EAAO,GAChB41B,EAAiB51B,OAA2B,GAC5CuX,EAAQhK,KAAKC,UAAU,CAAChB,EAAMmf,EAAYD,IAE1C5qB,EAAO,SAAA,0BAAM6a,gBAAO1Y,UAAU,KAC9B7B,OAAEA,SAAQwB,GAAWgxB,GAAU,CACpC9yB,SACQ,CAACA,EAAMA,cAEJoC,SACJsU,EAAU,CAAEK,MAAAA,EAAO6T,WAAAA,EAAYC,WAAAA,EAAYzU,OAAQA,EAAOjX,QAAS+C,MAAOE,EAAIF,MAAO7H,KAAAA,EAAM5B,QAAAA,SAC3F88B,GAAc7pB,EAAMtJ,EAAKsU,iBAEnBvV,KACLhC,SAAWgC,EAAKnB,qBAGVe,EAAGE,iBACVqyB,EAASv5B,KAAKC,MAAM+G,EAAIf,EAAOoW,EAAOjX,SACtC61B,EAASh1B,EAAOjG,KAAKoD,IAAI,EAAGpD,KAAK+sB,KAAK7lB,EAAIjB,wCAAgB6a,gBAAOmV,SAAS,GAC1EwF,WNmDqBz0B,EAAWE,SAClC8wB,EAAQzD,GAAW1yB,SAAUg2B,EAAS6D,UAAUv4B,EAAEynB,MAAQ5jB,GAAK6wB,EAAS8D,UAAUx4B,EAAEynB,MAAQ5jB,OAC7FgxB,SAGEA,EAAM1C,cAAcsG,EAASja,OAAO3a,EAAGE,EA1ErC,IMkBO20B,CAActC,EAAQ0B,KACzBQ,EAAQ,KAAKR,MAAWQ,EAAMlG,UAAUhb,QAAU,KAAK0gB,MAEnE72B,iBACY,KAEV,CAACsY,EAAOpc,OAED,KACLy6B,EAAe31B,uBACJ21B,EAAe31B,SAE1BgzB,wBAGKrwB,IACF8yB,MACYz1B,QAAU81B,aAAY,OAC7B91B,SAAW,QAEhB,YAEI7B,SACFA,SAIP,CAACmZ,EAAOpc,EAAM83B,EAAOpb,EAAO8T,EAAYD,EAAYgK,UAEjDiB,EAAYvuB,GAAQ,kBAAM,4BAAmB/M,IAAI,qBAAqB,KAAI,CAAC9B,sBAG/E,MAAD,CAAKxB,MAAM,6BACTo7B,KAAY7uB,GAAD,CAAKrM,MAAOk7B,EAASp7B,MAAM,iBACtCi9B,GAAD,CAASh9B,KAAK,OAAOI,QAASsa,EAAO,qBACnC4F,GAAa/e,OAAS,EAAW,mBAChCyQ,GAAD,CAAU/R,MAAOya,EAAO,iBAAkB3Z,MAAO,GAAG4yB,IAAchsB,YAAew2B,EAAcn7B,OAAOiO,QACrGe,GAAD,CAAU/R,MAAOya,EAAO,iBAAkB3Z,MAAO,GAAG2yB,IAAc/rB,YAAey2B,EAAcp7B,OAAOiO,SAErGe,GAAD,CAAU/R,MAAOya,EAAO,iBAAkB3Z,MAAO8e,EAAOlY,SAAUu2B,EAAUx2B,SAAUi3B,EAAWp3B,QAAM,MAEvG+E,GAAD,CAAKtM,KAAM09B,EAAa,cAAgB,SAAUz9B,MAAOya,EAAO,uBAAwBpa,QAAS,IAAMq9B,GAAeD,QAEtHpxB,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,qBAChCpa,QAAS,IAAMi9B,EAAQC,WAExB,SAAD,CAAQz1B,IAAKqB,EAAQ4B,MAAOlC,EAAMmC,OAAQnC,MC3E/B81B,GAAa,CAAC,YAAa,4BAA6B,iBAAkB,0BAA2B,8BAA+B,wCASpH17B,MAAEA,UAAO3B,KAAS/B,QAAIy7B,iBACzC4D,GAAYl2B,EAAS,SAErBzF,GAAO,WACG+rB,EAAQ,QAGtB/rB,sBAEM,cAAP1D,IAAsB,WAAM6D,IAAI,IAAIC,OAAK,CAAC,YAAa,oBAAWiV,SAAS,UAAU,OAClF/D,EAAOtR,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,qBAC1CkR,WAAcwmB,GAAD3uB,KAAwB,CAAEnJ,MAAAA,EAAO3B,QAAAA,EAAS05B,MAAAA,EAAOzmB,KAAAA,QAGxD,8BAAPhV,EAAoC,OACjCgV,EAAOtR,EAAMG,IAAI,IAAIC,OAAK,QAC5BkR,WAAcipB,GAADpxB,KAA4B,CAAEnJ,MAAAA,EAAO3B,QAAAA,EAAS05B,MAAAA,EAAOzmB,KAAAA,QAG5D,mBAAPhV,EAAyB,OACtBgV,EAAOtR,EAAMG,IAAI,IAAIC,OAAK,QAC5BkR,WAAcwpB,GAAD3xB,KAAkB,CAAEnJ,MAAAA,EAAO3B,QAAAA,EAAS05B,MAAAA,EAAOzmB,KAAAA,QAGlD,4BAAPhV,EAAkC,OAC/BgV,EAAOtR,EAAMG,IAAI,IAAIC,OAAK,QAC5BkR,WAAcypB,GAAD5xB,KAA0B,CAAEnJ,MAAAA,EAAO3B,QAAAA,EAAS05B,MAAAA,EAAOzmB,KAAAA,QAGzD,4BAAPhV,GAA6C,gCAAPA,GAAwC8gB,GAAa/e,EAAS,OAAQ,QAAW,OACrHiT,EAAOtR,EAAMG,IAAI,IAAIC,OAAK,QAC5BkR,WAAc8oB,GAADjxB,KAAsB,CAAEnJ,MAAAA,EAAO3B,QAAAA,EAAS05B,MAAAA,EAAOzmB,KAAAA,kCC5CxCtR,EAAkB6T,UACpC7T,EAAMoY,OAAOwjB,KAAKC,GAAiB,IAAIC,YAAU97B,GAAQA,EAAMsR,KAAM,CAAEuC,YAAAA,UAMlEgoB,GAAiD,CAC7DvS,SAASyD,EAAGlvB,IACJA,EAGRkG,QAAOg4B,WAAEA,GAAc7hB,EAAMrc,EAAOkL,UAC5BgzB,EAAWH,KAAK13B,KAAMgW,EAAMrc,EAAOkL,IAG3ChF,MAAKkF,SAAEA,GAAYiR,EAAMrc,EAAOkL,OAC1BxJ,MAAMiE,QAAQ3F,UAAeA,QAC5BgY,EAAMhY,EAAM+D,KAAI,CAAC/C,EAAKjB,IAC3BqL,EAAS2yB,KAAK13B,KAAMgW,EAAKjJ,KAAKrT,GAAQiB,EAAIqe,KAAMnU,eAEtCnG,KAAKe,OAAOq4B,sBAAsBn+B,KACxC+E,GAAY/E,EAAM+E,UAEhBiT,GAGR9R,KAAIkF,SAAEA,EAAU3H,UAAU4Y,EAAMrc,EAAOkL,mBACxB,IAAVlL,eACEo+B,EAA8C,qBAAjC,WAAOC,qBAAYC,WAAiC,WAAMtoB,sBAAcuoB,eAAaliB,EAAMwG,EAAOwb,WAAWrkB,OAAOvb,IAAI6D,OAAS,KAC9I0V,EAAW,UACVvV,KAAKzC,GAAO0C,mBACd07B,IACEt4B,OAAOrD,KAAK,WAAWoR,cAAc,IAAI9C,SAAS8K,OAEpDA,GAAKzQ,EAAS2yB,KAAK13B,KAAMgW,EAAKjJ,KAAKyI,GAAI7b,EAAM6b,GAAI3Q,iBAE3CnG,KAAKe,OAAOq4B,sBAAsBn+B,KACxC+E,GAAY/E,EAAM+E,UAEhBiT,GAGR9R,QAAOs4B,gBAAEA,GAAmBniB,EAAMrc,EAAOkL,MACpClL,MAAAA,GAA0D,iBAAVA,SAC5CA,QAEFgY,EAAW,GACXymB,EAAeD,EAAgBniB,UAC9B5Z,KAAKg8B,GACV5tB,WAAY4tB,EAAarC,GAAGF,QAAQ7f,KACpC3Z,mBACMg8B,EAAMD,EAAa5iB,GAAGkiB,KAAK13B,KAAMgW,EAAKjJ,KAAKyI,GAAI7b,EAAM6b,GAAI3Q,GAC3DwzB,MAAAA,MACC7iB,GAAK6iB,gBAGD35B,KAAKe,OAAOq4B,sBAAsBn+B,KACxC+E,GAAY/E,EAAM+E,UAEhBiT,ICjDH2mB,GAAsD,CAC3DC,WAAY,EACZC,WAAY,EACZC,KAAM,KACNC,cAAU,GAGLC,GAGD,CACJ5tB,KAAM,CACL0H,MAAO1H,GAAK0H,MACZrE,UAAW,CAACvE,EAAGrN,IAAMuO,GAAKqD,UAAUvE,EAAG,KAAMrN,GAAK,MAEnDo8B,KAAM,CACLnmB,MAAOmmB,GAAKpgC,KACZ4V,UAAW,CAACvE,EAAGrN,IAAMo8B,GAAKC,KAAKhvB,EAAG,CACjCivB,eAAiB,IAANt8B,EAAkB,KAC7BoW,OAAqB,iBAANpW,EAAiB,EAAIA,mBAsBX0M,KAAEA,QAAMpN,cAAO6T,SAAaopB,aAAQC,WAAYC,cAAUC,UAAaC,UAC5F7lB,OAAEA,GAAWwD,MACZlE,EAAQD,GAAapR,EAASuQ,GAAMK,cACpCW,EAAQD,GAAatR,EAASuQ,GAAMM,cACpCY,EAAcD,GAAmBxR,EAASuQ,GAAMO,mBACjDhM,EAAWzF,EAA0B,MACrCw4B,EAAcx4B,IACdy4B,EAAWz4B,IAEX04B,EAAW14B,IACX24B,EAAS34B,IAET44B,EAAsBnlB,GAAY,CAAColB,EAAkBC,WACpDtsB,EAAOusB,GAAUF,EAAOC,UACvBf,GAAQ7lB,GAAQ1E,UAAUhB,EAAMkrB,GAAO1lB,MAC5C,CAACA,EAAQE,OAEF,OACGjS,QAAU,QAChB/E,GAAU6T,YAERiqB,EAASJ,EAAoB19B,EAAO6T,KACnC9O,QAAQg5B,SAASD,SAChB56B,GACJA,aAAaC,SACdC,QAAU,8BAA8BF,EAAEE,YACpCF,MAEA,8BAA8BE,GAAQF,cAEvCuJ,MAAMvJ,KACP6B,QAAQg5B,SAAS,QAIjBh5B,QAAU,WACZlH,EAAQ4/B,EAAO14B,QAAQi5B,cACR,IAAjBngC,EAAMqB,iBAEHoS,EAAOurB,GAAQ7lB,GAAQL,MAAM9Y,cAC5Bu3B,MAAM1X,YAAUugB,UAAU3sB,IAAO,SAChCpO,GACJA,aAAaC,SACdC,QAAU,oBAAoBF,EAAEE,YAC1BF,MAEA,oBAAoBE,GAAQF,cAE7BuJ,MAAMvJ,OAGd,CAAClD,EAAO6T,EAAaiD,EAAQE,EAAQE,OAE9B,QACLA,EAAc,OACXgnB,EAAcC,GAAMC,KAAK,YACnBC,WAAW,CACtBC,SAAU,GACVC,iBAAiB,EACjBC,uBAAuB,MAEZC,gBAAkBvd,EAAAA,IAClBwd,GAAG,WAAanB,EAASx4B,QAAQ7B,OACjCy7B,aAAaC,QAAQ,mBAE1B75B,QAAU,CAChBi5B,aACQE,EAAYS,aAAaX,WAEjCj6B,SAASlG,KACI8gC,aAAaZ,SAASlgC,IAEnCkG,UAAU86B,EAAQC,KACLC,UAAU,cAA0B,SAAXF,KACzBE,UAAU,UAAsB,SAAXF,EAAoB,EAAIrC,GAAOqC,MACpDF,aAAaC,QAAQ,YAAYE,MAE9C/6B,WACai7B,qBAIPj6B,QAAU,CAChBi5B,aACQR,EAASz4B,QAAQlH,MAEzBkG,SAASlG,KACCkH,QAAQlH,MAAQA,GAE1BkG,cACAA,cAGA,CAACmT,OAEKlX,GAAO,OACH+E,gBAEH,KACL/E,KAAmB+E,YACrB,CAAC/E,OAEM,OACF+E,QAAQk6B,UAAUnoB,EAAQE,KACrBjS,YACV,CAAC+R,EAAQE,EAAQE,OAEV,KACL+lB,GAAUj9B,GAAS6T,aACZqrB,UAAUC,UAAUzB,EAAoB19B,EAAO6T,IAAckC,MAAK,cAI3E,CAACknB,OAEM,QACLC,GAAcl9B,GAAS6T,GAAetJ,EAASxF,QAAS,OACrD4K,EAAUnN,mBAAmBk7B,EAAoB19B,EAAO6T,MACrD9O,QAAQ2V,aAAa,OAAQ,gCAAgC/K,OAC7D5K,QAAQ2V,aAAa,WAAY,GAAGtN,KAAQ4J,OAC5CjS,QAAQq6B,WAEhB,CAAClC,OAEM,KACLC,GAAYM,EAAO14B,YACfA,QAAQg5B,SAAS,MACjBh5B,QAAQC,YAEd,CAACm4B,sBAkBF,MAAD,CAAKtgC,MAAM,8BACTi9B,GAAD,CAASh9B,KAAK,OAAOI,QAASsa,EAAO,mBAAoB6nB,UAAQ,mBAC/D17B,OAAOvB,QAAQo6B,IAAQ56B,KAAI,EAAES,OAC5B+G,GAAD,CAAKrM,MAAOya,EAAO,eAAenV,KAAQrF,OAAQ8Z,IAAWzU,EAC5DjF,QAAS,KAAMkiC,OApBEzhC,EAoBWwE,KAnB1BwU,UAAUhZ,UACNA,GAFU,IAACA,SAsBlB,KAAD,MACC8F,OAAOrD,KAAKu8B,IAASj7B,UACpBwH,GAAD,CAAKrM,MAAOya,EAAO,UAAUnV,KAAQrF,OAAQga,IAAW3U,EACvDjF,QAAS,KAAMmiC,OApBE1hC,EAoBWwE,KAnB1B0U,UAAUlZ,UACNA,GAFU,IAACA,SAqBlB,KAAD,QACCuL,GAAD,CAAKtM,KAAMoa,EAAe,cAAgB,SAAUna,MAAOya,EAAO,gBACjEpa,QAAS,KAAMoiC,OAlBS3hC,GAkBWqZ,KAjBhCD,gBAAgBpZ,UACNA,GAFU,IAACA,OAqB1BqZ,IACG,MAAD,CAAK5a,GAAG,SAASO,MAAM,aACtB,WAAD,CAAUgI,IAAK24B,EAAU3gC,MAAM,SAAS4iC,YAAY,EAAOC,YAAY,MAAMC,OAAQpC,EAASx4B,YAChG,IAAD,CAAGF,IAAK0F,EAAUq1B,MAAM,qCC1NQliB,YACjC3Z,YACCqU,EACiBynB,EACAC,EACAC,SAEX3nB,6CAGPrU,IAAImW,UACIhW,KAAK27B,OAAO3lB,GAGpBnW,IAAImW,UACIhW,KAAK47B,OAAO5lB,GAGpBnW,IAAImW,EAAYrc,EAAYmiC,UACpB97B,KAAK67B,OAAO7lB,EAAMrc,EAAOmiC,ICRlC,MAAMC,GAAmB,CAAC,kBAAmB,kBAAmB,oBAAqB,sBAAuB,oBAAqB,cAAe,2BAA4B,wCAAyC,0CAA2C,cAAe,eAAgB,iBAAkB,iCAAkC,4BAA6B,oBAAqB,sBAAuB,sBAAuB,oBAAqB,sBAAuB,uBAAwB,yBAA0B,uBAAwB,2BAA4B,2BAA4B,+BAAgC,gCAAiC,oBAAqB,uBAAwB,qBAAsB,0BAA2B,2BAA4B,yBACtxBC,GAAe,CAAC,uBAAwB,sBAAuB,oBAAqB,oBAAqB,sBAAuB,wBAChIC,GAAkB,CAAC,iBAAkB,mBAAoB,qBAAsB,uBAAwB,mDAAoD,oDAAqD,kEAAmE,wBAAyB,2BAA4B,yBAA0B,uCAAwC,wCAAyC,oCACnbC,GAAe,CAAC,kBAAmB,oBAAqB,sBAAuB,oBAAqB,2BAA4B,wCAAyC,eAAgB,iBAAkB,4BAA6B,iCAAkC,oBAAqB,sBAAuB,sBAAuB,oBAAqB,2BAA4B,2BAA4B,gCAAiC,mBAAoB,wBAAyB,sBAAuB,wBAAyB,sBAAuB,sBAAuB,wBAAyB,uBAAwB,qBAAsB,0BAA2B,yBACxqBC,GAAY,CAAC,uBAAwB,+BAAgC,4BAA6B,aAAc,YAAa,YAC7HC,GAAa,CAAC,yCAA0C,sCAAuC,6CAA8C,qCAAsC,mCAAoC,uCAAwC,wCAAyC,2BAA4B,gCAAiC,yCAA0C,yCAA0C,qBAAsB,mBAAoB,gCAAiC,yBAA0B,0BAA2B,6BAA8B,uBAAwB,mDAC/mBC,GAAkB,CAAC,8BAA+B,uCAClDC,GAAoB,CAAC,4BAA6B,6BAA8B,6BAA8B,yBAA0B,iCAAkC,sCAS1KC,GAAY,IAAI/iB,YAAUgjB,UAC/BC,eACAA,gBACE,CAAEC,WAAY,iBAeQ5gC,MAAEA,OAAOuX,UAAMlZ,cAASwV,gBAC1CqG,EAAO,IAAI4hB,YAAU97B,IACpB6gC,EAAQC,EAAQt5B,GAAQxH,EAAMoY,OAAOwjB,KAAKmF,GAAY7mB,EAAM7W,GAAUrD,EAAMsR,MAAOiG,EAAMlZ,EAASwV,EAAa,WAC/G,0BAAQ9K,gBAAOE,SAAS+Q,MAAMlX,GAAWA,OAAM,MAAD,CAAKjG,MAAO,QAAQmD,EAAMoY,OAAO/b,KAAK6d,UAAc8mB,gBAAehhC,EAAMoY,OAAO1a,SAASwc,MAC5I,MAAD,CAAKrd,MAAM,eAAegkC,EAAQC,KACjC,MAAD,CAAKjkC,MAAM,aAAa2K,IAChBA,EAGV,MAAMu5B,GAAyB,CAC9BzX,SACQ,CAAC,KAAM,KAAM,MAGrB2X,SAAQppB,EAAQqC,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,IAC5C,CAAC,OAAOu5B,GAADh4B,KAAmBE,OAAIwO,GAAJ,CAAYqC,KAAAA,EAAMrc,MAAAA,EAAO0Z,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQt5B,IAAAA,MAAU,MAG5F7D,QAAOq9B,QAAEA,EAAS9/B,oBAAQy6B,GAAc7hB,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,SACrEy5B,EAAStF,EAAWuF,WAAWpnB,GAAM,GACrCqnB,oBAAuBxmB,SAAW,IAAI+gB,YAAU5hB,EAAKsnB,WAAY,IAAIphC,OAAK8Z,EAAKunB,WAAY,CAAC/gB,EAAO3F,WAAab,GAC/G2mB,EAAQC,EAAQt5B,GAAQ65B,EAAOnkB,KAAK0e,KAAK13B,KAAMq9B,EAAa1jC,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,MAC1E,IAAnBw5B,EAAQliC,aACJ,CAAC2hC,EAAQC,EAAQt5B,SAEnBk6B,oBAA4BC,eAAgB,IAAIvhC,OAAK,GAAI,CAACsgB,EAAOihB,kCAA0B5mB,SAAU,IAAI3a,OAAK,GAAI,CAACsgB,EAAO3F,UAAYb,EAStI0nB,IAAU,SAAD,CAAQ/jC,MAAOwjC,EAAOhlC,KAAMoI,SAAWvB,GAR1C,CAAC7G,gBACNyG,EAAI,WAAQtB,SAAUqgC,EAAExlC,OAASA,OAASglC,EAC1CS,EAAMh/B,EAAEoa,KAAKvL,UACbowB,EAAWj/B,EAAEgN,OAChBhN,EAAEgN,OAAO4N,YAAUC,YAAY9f,IACN,YAAzB6iB,EAAOihB,eAA6C,0CAATtlC,MAAiCylC,EAAIxgC,OAAOkpB,QAAUsX,IAC/F9hC,MAAMK,IAAI6Z,EAAMwD,YAAUugB,UAAU8D,KAEkB1hC,CAAK6C,EAAE0B,OAA6B/G,QAC9FujC,EAAQx/B,UAAU,SAAD,CAAQ/D,MAAOiF,EAAEzG,MACjC2lC,GAAWzqB,EAAMmqB,EAAkBO,YAAYn/B,EAAEzG,iBAG7C,CAACwkC,WAAWe,EAAQd,GAAYt5B,IAGxCzD,MAAKkF,SAAEA,EAAU3H,UAAU4Y,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,SACxDs6B,OAAEA,WAAQC,YAAUC,GAAcC,MACjCC,EAAUC,GAAe98B,EAAS,IAEnCsV,EAAUb,EAAKrS,aAAapI,KAAK,QACnC6gC,GAAW1xB,SAASmM,GAAU,OAU1B,UARL,IAAIxb,MAAMmhB,EAAO8hB,YAAa5gC,KAAI,CAACmrB,EAAGrsB,MACrC+hC,GAAD,CAAYlrB,KAAAA,EAAY2C,KAAMA,EAAKwoB,UAAUhiC,SAC7C,MAAD,CAAK7D,MAAM,yBAEM,IAAI0C,MAAMmhB,EAAO8hB,YAAY5gC,KAAI,CAACmrB,EAAGrsB,kBACxCuI,EAAS2yB,KAAK13B,KAAMgW,EAAKwoB,UAAUhiC,GAAI,0BAAQA,aAAIwc,KAAM3F,EAAMlZ,EAAS6iC,EAAQt5B,GACjF,OAEU,YA0ElB,CAAC,OA7DQ,SAAD,CAAQ/K,MAAM,wBAAwBQ,aAAYmb,GAASjB,EAAM,WAAYna,QAV9E,KACRmC,MAAMiE,QAAQ3F,OAAgB,UAC7Bqf,EAAOQ,YAAUugB,UAAUh1B,EAAS0I,aACrC3R,MAAMK,IAAI6Z,EAAM,CAAC,CAAEgD,KAAAA,EAAM5gB,GAAI4I,SAAcrH,MAO4DP,GAAQmO,sBAElH5N,GAAS0B,MAAMiE,QAAQ3F,IAAWA,EAAM+D,KAAI,EAAGsb,KAAMylB,EAAQrmC,GAAIsmC,GAAOhlC,QACrEA,IAAU0kC,WACL,MAAD,CAAKzlC,MAAM,sBAChB,QAAD,KAAQ2b,GAASjB,EAAM,iBAAkB,IAAG1Z,EAAMqB,OAASojC,OAC1D,SAAD,CAAQllC,QAAS,IAAMmlC,EAAY5iC,KAAKqD,IAAIs/B,EAAW,GAAIzkC,EAAMqB,UAAWsZ,GAASjB,EAAM,sBAAuB,SACjH,SAAD,CAAQna,QAAS,IAAMmlC,EAAY1kC,EAAMqB,SAAUsZ,GAASjB,EAAM,2BAGhE3Z,EAAQ0kC,SACJ,WAGFO,EAAQ3oB,EAAKjJ,KAAKrT,GAAOqkC,YAAY,SACrCa,EAAqC,WAAzB75B,EAAS5M,KAAKwmC,GAC1BE,EAASX,EAAUQ,MACrBE,KAAyB,YAAqB,IAAXC,GAAwBllC,EAAMqB,OAAS,aACrE,MAAD,CAAKrC,MAAM,mBAAmBmkC,gBAAe/3B,EAASvL,SAASmlC,MACpEJ,GAAD,CAAYlrB,KAAAA,EAAY2C,KAAM2oB,EAAOG,QAAM,MAC1C,SAAD,CAAQnmC,MAAM,2BAA2BQ,aAAY,GAAGmb,GAASjB,EAAM,cAAciB,GAASjB,EAAM,aAAc,UAAWna,QAAS8kC,EAAOU,IAAOtlC,GAAQ0M,iBAC3J,QAAD,KAAQg4B,GAAWzqB,EAAMsrB,EAAO,GAAGjlC,QAClCqlC,GAAD,CAAW5gC,IAAKugC,EAAK1oB,KAAM2oB,EAAOhlC,MAAO8kC,EAAQvqB,OAAQnP,cA0BnDi6B,GAAD75B,KAAgBhH,IAAKugC,EAAK1oB,KAAM2oB,EAAOzqB,OAAQnP,EAAUpL,MAAO8kC,GAAY,CAACprB,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQiC,QAX7E,CAC7B,CACCrmC,KAAM,YACNC,MAAO,YACPoR,SAAU,WACHJ,EAAI,IAAImM,EAAK/Z,SACjBijC,OAAOxlC,EAAO,EAAG,CAAEtB,GAAI4I,KAASgY,KAAM7Z,GAAUs/B,OAC7C3iC,MAAMK,IAAI6Z,EAAMnM,QAIjB,CAA8GnG,IAAKyB,OAAIzB,GAAJ,CAAShK,OAAkB,MAAI,EAAI,QAAgBC,EAAMqB,OAAS,EAAI,EAAI,OAClM4jC,KAAc,SAAD,CAAQjmC,MAAM,2BAA2BQ,aAAY,GAAGmb,GAASjB,EAAM,gBAAgBiB,GAASjB,EAAM,eAAgB,UAAWna,QAAS+kC,EAASS,IAAOtlC,GAAQyM,gBAC/K,SAAD,CAAQlN,MAAM,2BAA2BQ,aAAYmb,GAASjB,EAAM,UAAWna,QAxB/D,IAAMylC,EAAMxiC,SAAI,IAwBmE/C,GAAQ+O,UAC1GxO,EAAMqB,OAAS,KAAM,MAAD,CAAKrC,MAAM,eAC9B,SAAD,CAAQA,MAAM,yBAAyBQ,aAAYmb,GAASjB,EAAM,WAAYna,QAzB/D,WACV2Q,EAAI,IAAImM,EAAK/Z,QAClB4N,EAAEnQ,EAAQ,GAAImQ,EAAEnQ,IAAU,CAACmQ,EAAEnQ,GAAQmQ,EAAEnQ,EAAQ,MAC3CoC,MAAMK,IAAI6Z,EAAMnM,IAsB6Es1B,SAAoB,IAAVzlC,GAAcN,GAAQ2M,cAChI,SAAD,CAAQpN,MAAM,yBAAyBQ,aAAYmb,GAASjB,EAAM,aAAcna,QArB/D,WACZ2Q,EAAI,IAAImM,EAAK/Z,QAClB4N,EAAEnQ,EAAQ,GAAImQ,EAAEnQ,IAAU,CAACmQ,EAAEnQ,GAAQmQ,EAAEnQ,EAAQ,MAC3CoC,MAAMK,IAAI6Z,EAAMnM,IAkBiFs1B,SAAUzlC,IAAUC,EAAMqB,OAAS,GAAI5B,GAAQyM,mBAIrJlM,GAASA,EAAMqB,OAAS,GAAKrB,EAAMqB,QAAUojC,KAAc,MAAD,CAAKzlC,MAAM,sBACrE,SAAD,CAAQA,MAAM,wBAAwBQ,aAAYmb,GAASjB,EAAM,cAAena,QA/D9D,KACdmC,MAAMiE,QAAQ3F,OAAgB,UAC7Bqf,EAAOQ,YAAUugB,UAAUh1B,EAAS0I,aACrC3R,MAAMK,IAAI6Z,EAAM,IAAIrc,EAAO,CAAEqf,KAAAA,EAAM5gB,GAAI4I,UA4D4D5H,GAAQmO,iBAMlH1H,KAAIkF,SAAEA,OAAU3I,EAAMgB,UAAU4Y,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,uBAC7Ds6B,OAAEA,WAAQC,YAAUC,GAAcC,KAElCiB,EAAU,IAAIxH,YAAU2E,GAAW,IAAIrgC,OAAK,CAACuC,GAAWuX,EAAKlb,eAK7Di9B,EAA8C,qBAAjC,WAAOC,qBAAYC,iBAAkC+E,WAAS9E,eAAaliB,EAAMwG,EAAOwb,WAAWrkB,OAAOvb,IAAI6D,OAAS,KACpIojC,oBAAyB7xB,YAC5BivB,aAAW,KAAO,CAAE6C,KAAM7/B,OAAOrD,KAAK,WAAWoR,cAAc,MAC/DpR,KACC27B,GAA8B,eAAhB/hB,EAAKupB,OAAyB,CAC1B,iBAAV5lC,MAA4B,UACjC6T,EAAa/N,OAAOvB,QAAQ,WAAWsP,cAAc,IACzD9P,KAAI,EAAES,EAAK6L,KAAY,CAAC7L,EAAKs+B,aAAW,KAAO,CAAE6C,KAAMt1B,qBAClD9L,QAAQ,WAAWsP,cAAc,IAAInR,SAAQ,EAAE8B,EAAK6L,MAChC,iBAAfrQ,EAAMwE,KACXrC,MAAM0jC,OAAOC,IAAIzpB,EAAKjJ,KAAK5O,GAAM,yBAC3B6L,EAAOU,SAAS/Q,EAAMwE,OAC5BrC,MAAM0jC,OAAOC,IAAIzpB,EAAKjJ,KAAK5O,GAAM,4BAA6BxE,EAAMwE,OAGpEuhC,aAAWjgC,OAAOkgC,YAAYnyB,IAAakqB,KAAK13B,KAAMgW,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,SAkC3F,CAAC,cA/BN27B,EAAW3H,KAAK13B,KAAMo/B,EAAS,WAAQnjC,SAAS,GAAIoX,EAAMlZ,EAAS6iC,EAAQt5B,GAAK,KAChF,SAAD,CAAQ/K,MAAM,wBAAwBQ,aAAYmb,GAASjB,EAAM,OAAQna,QAvB5D,WACPiF,EAAMihC,EAAQnjC,QACfH,MAAMK,IAAI6Z,EAAKjJ,KAAK5O,GAAMqb,YAAUugB,UAAUh1B,EAAS0I,cAqB8BrU,GAAQmO,uBAGhF,iBAAV5N,GAAsB8F,OAAOvB,QAAQvE,GAAO+D,KAAI,EAAES,EAAKsgC,wBAExDE,EAAQ3oB,EAAKwoB,UAAUrgC,GACvBygC,EAAqC,WAAzB75B,EAAS5M,KAAKwmC,GAC1BE,EAASX,EAAU//B,MACrBygC,KAAyB,YAAqB,IAAXC,GAAwBllC,EAAMqB,OAAS,aACrE,MAAD,CAAKrC,MAAM,mBAAmBmkC,gBAAe/3B,EAASvL,SAASmlC,MACpEJ,GAAD,CAAYlrB,KAAAA,EAAY2C,KAAM2oB,EAAOG,QAAM,MAC1C,SAAD,CAAQnmC,MAAM,2BAA2BQ,aAAY,GAAGmb,GAASjB,EAAM,cAAciB,GAASjB,EAAM,aAAc,UAAWna,QAAS8kC,EAAO7/B,IAAO/E,GAAQ0M,iBAC3J,QAAD,KAAQ3H,KACP4gC,GAAD,CAAW5gC,IAAAA,EAAU6X,KAAM2oB,EAAOhlC,MAAO8kC,EAAQvqB,OAAQnP,WAGrD66B,EAAU7H,EACb0E,aAAW,KAAO,CAAE6C,KAAM,SAAA,WAAW9xB,qBAAarP,MAAQ,KAC1D4G,GACC,0BAAYyI,qBAAarP,KAA0B,iBAAXsgC,KACvC,WAAWjxB,qBAAarP,GAAKuM,SAAS+zB,OACrC3iC,MAAM0jC,OAAOC,IAAId,EAAO,4BAA6BF,YAGnDO,GAAD75B,KAAgBhH,IAAAA,EAAU+V,OAAQ0rB,EAAS5pB,KAAM2oB,EAAOhlC,MAAO8kC,GAAY,CAACprB,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQt5B,IAAAA,IAAnG,CAAyG7K,MAAOsF,IACrHygC,KAAc,SAAD,CAAQjmC,MAAM,2BAA2BQ,aAAY,GAAGmb,GAASjB,EAAM,gBAAgBiB,GAASjB,EAAM,eAAgB,UAAWna,QAAS+kC,EAAS9/B,IAAO/E,GAAQyM,gBAC/K,SAAD,CAAQlN,MAAM,2BAA2BQ,aAAYmb,GAASjB,EAAM,UAAWna,QAH/D,IAAMylC,EAAMxiC,SAAI,IAGmE/C,GAAQ+O,iBAO/G03B,QAAOlsB,EAAQqC,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,IAC3C,CAAC,OAAOo8B,GAAD76B,KAAkBE,OAAIwO,GAAJ,CAAYqC,KAAAA,EAAMrc,MAAAA,EAAO0Z,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQt5B,IAAAA,MAAU,MAG3F7D,QAAOmZ,KAAEA,EAAM5b,yBAAQ+6B,oBAAiB4H,GAAqB/pB,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,eAC1Fs6B,OAAEA,WAAQC,YAAUC,GAAcC,QAEV,GAA1BnoB,EAAKunB,WAAWviC,QAgTtB,SAAqB6b,EAA6Bld,eAC9B,YAAZkd,GACyC,eAA5C,0BAAO1e,eAAMgF,QAAQ,cAAe,MACpCgP,SAASxS,WAAOyD,QAnTgB4iC,CAAYxjB,EAAO3F,QAASld,GAAQ,OAChEsmC,QAAEA,SAASC,GAqTpB,SAAiCC,EAA8BnqB,EAAiBrc,SACzEymC,EAAoB,GACpB9Z,EAAU+Z,GAAwB1mC,EAAOymC,GACzCF,EAAS,CACd/nC,KAAMgoC,EAAehoC,KACrBiF,OAAQsiC,aAAW,CAClBU,WAAYE,WAASjxB,IACrBiX,QAAShX,IACP,CAAEuH,QAAS,uBAET3C,EAASwrB,aAAWQ,EAAQ,CAAErpB,QAAS,YACvC0pB,EAAc,IAAIrkC,OAAK,CAAC,SAAU,YAClCskC,EAAiB,IAAItkC,OAAK,CAAC,SAAU,eACrCJ,EAAQka,EAAKsnB,WACb2C,EAAwB,IAAIQ,GAAavsB,UAC1CwsB,EAAKxzB,WAAWqzB,UACZ,IAAIrkC,OAAK,IAAI,IAAIb,MAAM+kC,EAAWplC,OAAS,IAAI+tB,SAAQ,IAAM,CAAC,SAAU,gBAAgB2X,EAAKC,cAC1FD,EAAKxzB,WAAWszB,GAAiB,IACd,IAAzBE,EAAKC,SAAS3lC,cACV,IAAIkB,OAAK,UAEXxC,EAAQgnC,EAAKC,SAAS,MACP,iBAAVjnC,SACH,IAAIwC,OAAK,IAAI,IAAIb,MAAM3B,IAAQqvB,SAAQ,IAAM,CAAC,SAAU,aAAa,SAAU,eAAgB2X,EAAKC,SAAS5jC,MAAM,YAGrH2jC,YAEHA,EAAKE,OAAOJ,GAAiB,OAC1BK,EAAuB,aACL/kC,EAAMsR,KAAMyzB,GAC7BA,SAED/kC,EAAMG,IAAIgkC,EAAQviC,IAAIgjC,OAC3B,CAACA,EAAMjgC,EAAOq7B,QACZ4E,EAAKxzB,WAAWqzB,GAAc,OAC3BM,EAAuB,MACL/kC,EAAMsR,KAAMyzB,SAC9B/iC,EAAS,IAAI5B,OAAK,IAAI,IAAIb,MAAMwlC,EAAc7lC,OAAS,IAAI+tB,SAAQ,IAAM,CAAC,SAAU,gBAAgB2X,EAAKC,kBACxG7kC,EAAMK,IAAI2B,EAAS2C,EAAOq7B,MACvB4E,EAAKxzB,WAAWszB,GAAiB,OACrC9mC,EAAQgnC,EAAKC,SAAS,MACC,IAAzBD,EAAKC,SAAS3lC,OAAc,OACzB8lC,EAAUb,EAAQhkC,IAAIskC,UACrBzkC,EAAMK,IAAI,IAAID,OAAQ6kC,GAAwBD,EAASrgC,GAAQq7B,MAC3C,iBAAVpiC,EAAoB,IACR,IAAzBgnC,EAAKC,SAAS3lC,aAA0B,IAAVyF,EAAqB,OAChDqgC,EAAUb,EAAQhkC,IAAIskC,GACtBM,EAAuB,MACL/kC,EAAMsR,KAAMyzB,KACtB3B,OAAOxlC,EAAO,SACtBmkC,EAAWkD,GAAwBD,EAASD,UAC3C/kC,EAAMK,IAAI,IAAID,OAAQ2hC,EAAU/B,GACjC,OACAh+B,EAAU,IAAI5B,OAAK,IAAI,IAAIb,MAAM3B,IAAQqvB,SAAQ,IAAM,CAAC,SAAU,aAAa,SAAU,eAAgB2X,EAAKC,SAAS5jC,MAAM,YAC5HjB,EAAMK,IAAI2B,EAAS2C,EAAOq7B,OAI9B3/B,IAAIukC,EAAMjgC,EAAOq7B,eAEhB1uB,KAAO,CACdjV,KAAM2D,EAAMsR,KAAKjV,KACjBiF,OAAQ,CACPgjC,WAAAA,EACA9Z,QAAAA,MAGMkZ,OAAS1jC,EAAM0jC,OAChB,CAAEU,OAAAA,EAAQD,QAAAA,GA1Xae,CAAwB7I,EAAgBniB,GAAOA,EAAMrc,KACzEsmC,EAAQ7yB,OACE,IAAM8yB,IACJ,CAACQ,EAAMviC,IAAQ,IAAIy5B,YAAUqI,EAAS,IAAI/jC,OAAKwkC,EAAKnD,WAAY,CAAC,aAAaxwB,KAAK5O,OAGpGw+B,EAA6B,KAC7BC,EAA6B,QAC7B5jB,EAAKioB,mBACM,IAAVtnC,EAAqB,OAClBunC,EAAW,IAAMlrB,EAAK7Z,IAAIqd,YAAUugB,UAAU/gB,EAAKvL,gBAC/C,SAAD,CAAQ9U,MAAM,oCAAoCQ,aAAYmb,GAASjB,EAAM,UAAWna,QAASgoC,GAAW9nC,GAAQmO,iBACvH,OACA45B,EAAa,IAAMnrB,EAAK7Z,SAAI,OACxB,SAAD,CAAQxD,MAAM,kCAAkCQ,aAAYmb,GAASjB,EAAM,UAAWna,QAASioC,GAAa/nC,GAAQ+O,gBAGzH0O,EAAUb,EAAKrS,aAAapI,KAAK,QACnC+gC,GAAkB5xB,SAASmM,IAAYwlB,GAAgB3xB,SAASmM,GAAU,OACvEuqB,EAAUlD,EAAU,IACpBmD,EAAWhF,GAAgB3xB,SAASmM,GAAWuqB,GAAWA,kBAE9D,SAAD,CAAQzoC,MAAM,2BAA2BQ,aAAYmb,GAASjB,EAAMguB,EAAW,WAAa,UAAWnoC,QAASkoC,EAAUnD,EAAS,IAAMD,EAAO,KAAMqD,EAAWjoC,GAAQyM,aAAezM,GAAQ0M,iBAE5Lu7B,QACG,CAAC1E,EAAQC,EAAQ,YAIpB0E,EAA2B,iBAAV3nC,GAAgC,OAAVA,IAAkB,WAAK8T,oBAAW8zB,OAC5Ep8B,OAAKzB,GAAL,CAAU89B,WAAM7nC,WAAOxB,OAASuL,EAC7BJ,WACc,iBAAV3J,GAAgC,OAAVA,OAAyBsnC,iBAAwB,IAAVtnC,IACrE8F,OAAOvB,QAAQi6B,EAAgBniB,IAC7BxL,QAAO,EAAEqe,EAAG4Y,KAAWA,EAAM5L,QAAQ7f,KACrCtY,KAAI,EAAES,EAAKsjC,YACL9C,EAAQoB,EAAkB/pB,EAAM7X,GAChCujC,EAAU/C,EAAMh7B,aAAapI,KAAK,QACpCygC,GAAatxB,SAASg3B,UAAiB,WACpCC,EAASC,EAASC,GAASJ,EAAM/J,KAAK13B,KAAM2+B,EAAOhlC,EAAMwE,GAAMkV,EAAMlZ,EAAS6iC,EAAQsE,GACvFQ,EAAoC,WAAtBL,EAAMtpC,KAAKwmC,IAAuB1C,GAAgBvxB,SAASg3B,GACzEK,EAAY7F,GAAaxxB,SAASg3B,UACpCI,GAAeC,cACNpF,IAAQ4B,GAAD,CAAYlrB,KAAAA,EAAY2C,KAAM2oB,MAAUqD,GAAD,CAAW3uB,KAAAA,EAAY2C,KAAM2oB,IAAUgD,cACrF/E,EAAQgF,GACbE,EAAcD,EAAQ,QAEtB7C,GAAD/5B,GAAgB9G,IAAAA,EAAU+V,OAAQutB,EAAOzrB,KAAM2oB,EAAOhlC,MAAOA,EAAMwE,IAAU,CAACkV,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQt5B,IAAK49B,eAI9G,CAAC3E,EAAQC,EAAQt5B,IAGzB2+B,QAAOtuB,EAAQqC,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQt5B,IAC3C,CAAC,OAAOw+B,GAADj9B,KAAkBE,OAAIwO,GAAJ,CAAYqC,KAAAA,EAAMrc,MAAAA,EAAO0Z,KAAAA,EAAMlZ,QAAAA,EAAS6iC,OAAAA,EAAQt5B,IAAAA,MAAU,OAI5F,aAAmBsS,KAAEA,QAAMrc,yBACVqc,EAAKrS,aAAapI,KAAK,UAEjC,kCACI,QAAD,KAAQ,SAAA,0BAAO2C,kBAASlD,UAAU,EAAE,gBACvC,0CACA,mCACI,QAAD,KAAQ,SAAA,0BAAOkO,eAAM/L,QAAQ,cAAe,OAAO,0BAAOhF,eAAMgF,QAAQ,cAAe,eAErFskC,KAAShiC,OAAOuK,aAAOrQ,IAAS,OACrB,iBAAV8nC,WACF,QAAD,KAAQA,EAAMtkC,QAAQ,cAAe,YAGvC,KAGR,oBACQglC,EAAaC,GAAkB7gC,EAAS,IAAI/D,MAC5C6kC,EAAWC,GAAgB/gC,OAA8B,SAwBzD,CAAEy8B,OAtBO7/B,GAAiBmL,IAC5BA,EAAIi5B,WACQ,IAAI/kC,QACN,UAEW,IAAIA,IAAI2a,EAAMhc,IAAIgC,GAAK,OAiBhC8/B,SAdC9/B,GAAiBmL,IAC9BA,EAAIi5B,WACQ,IAAI/kC,QACN,UAEW,IAAIA,IAAI2a,EAAMhc,IAAIgC,GAAK,OAStB+/B,UALR//B,8BACWX,MACtB,WAAYvB,IAAIkC,MAAQkkC,KAMjC,aAAuBrsB,KAAEA,OAAMgD,QAAMrf,OAAO0Z,UACrClX,EAAOuE,MACP5E,MAAMK,IAAI6Z,EAAMgD,EAAKioB,YAActnC,IAAU+G,OAAS,EAAYA,sBAGtE,SAAD,CAAQ/H,OAAiB,IAAVgB,EAAkB,WAAa,GAAIT,QAAS,IAAMiD,GAAI,IAASmY,GAASjB,EAAM,YAC5F,SAAD,CAAQ1a,OAAiB,IAAVgB,EAAiB,WAAa,GAAIT,QAAS,IAAMiD,GAAI,IAAQmY,GAASjB,EAAM,UAI7F,aAAsB2C,KAAEA,EAAM5Y,iBAAQolC,QAAS7oC,OAAO0Z,gBAC/C9S,EAAY+I,UACX7I,EAAS6I,EAAI5I,OAA4B/G,MACzC8oC,EAASD,EAAU5uB,SAASnT,GAASiiC,WAAWjiC,KACjD3E,MAAMK,IAAI6Z,EAAMysB,sBAQpB,QAAD,CAAOtqC,KAAK,OAAOwB,YAAOA,IAAS,GAAI8hC,OAAQl7B,EAAUiJ,cAAmC,UAAZF,EAAInL,OAA0BmL,wBACrGkU,UAAU,QAAD,CAAOrlB,KAAK,QAAQwB,MAAO,+BAAcmB,SAAS,IAAI6nC,SAAS,EAAG,QAAQ,UAAWpiC,SAPvF+I,UACV7I,EAAS6I,EAAI5I,OAA4B/G,MACzC8oC,EAAS7uB,SAASnT,EAAM1D,MAAM,GAAI,MACnCjB,MAAMK,IAAI6Z,EAAMysB,MAKpB,CAAC,2BAA4B,wCAAyC,uBAAuB/3B,SAASsL,EAAKrS,aAAapI,KAAK,SAAU,SAAD,CAAQrC,QAAS,IAAM48B,GAAQ9f,EAAKla,OAAQnD,MAAM,oBAAoBQ,aAAYmb,GAASjB,EAAM,sBAAuBja,GAAQ2O,OAIzQ,aAAsBiO,KAAEA,YAAM4sB,EAAWxlC,cAAQ4b,QAAMrf,OAAO0Z,UAAMlZ,SAAS6iC,gBACtEz8B,EAAY+I,MACbrI,wBACE48B,EAAYv0B,EAAI5I,OAA6B/G,MAC/CkkC,IAAalkC,KACZmC,MAAMK,IAAI6Z,EAA0B,IAApB6nB,EAAS7iC,YAAe,EAAY6iC,IAEpD7zB,EAAS44B,IACT/rB,EAAUb,EAAKrS,aAAapI,KAAK,KACjCnD,EAAMyqC,GAAOrmB,IAAiC,+BAAdyb,YAA0D,iBAAvBzb,EAAO7I,OAAOmvB,UAAyC,EAArBtmB,EAAO7I,OAAOmvB,QAErH3G,GAAUzxB,SAASmM,YACd,WAAD,CAAUld,YAAOA,IAAS,GAAI8hC,OAAQl7B,OAClCsiC,GAAOrmB,KAAYA,EAAOumB,YAAehH,GAAiBrxB,SAASmM,GAAU,KACpF6qB,EAAU,IAAIxlC,OAAK,WACnB2mC,GAAOrmB,IAAkC,iBAAhBA,EAAO8iB,OACzBoC,EAAQ3D,YAAYvhB,EAAO8iB,MAC3BlnC,IACAspC,EAAQ3D,YAAY3lC,GACpByqC,GAAOrmB,OACPxG,KAEH,SAAD,CAAQrc,YAAOA,IAAS,GAAI4G,SAAAA,GACjCyY,EAAKioB,cAAe,SAAD,CAAQtnC,MAAM,IAAI2a,GAASjB,EAAM,UACpDrJ,EAAOtM,UAAU,SAAD,CAAQ/D,MAAOkQ,GAC9Bi0B,GAAWzqB,EAAMquB,EAAQ3D,YAAYl0B,EAAE1M,QAAQ,cAAe,aAGtD0lC,GAAOrmB,IAAiC,sCAAdyb,WAM/B,OACA+K,EAAahiC,KACb+U,EAAM3d,EA5YQ,CAACA,GACfgF,GAAOC,WAAWC,SAAUC,EAAEnF,KAAOA,EAAG+E,QAAQ,MAAO,MA2Y5C8lC,CAAc7qC,QAAM,oBAEnC,QAAD,CAAOuB,YAAOA,IAAS,GAAI8hC,OAAQl7B,EAAUiJ,cAAmC,UAAZF,EAAInL,OAA0BmL,IACjGpI,KAAM8I,EAAOhP,OAAS,EAAIgoC,EAAa,KACvCh5B,EAAOhP,OAAS,KAAM,WAAD,CAAU5C,GAAI4qC,GAClCh5B,EAAOtM,UAAU,SAAD,CAAQ/D,MAAOkQ,OAEhCkM,GAAO/L,EAAOU,SAAS/Q,IAAUA,EAAMuT,WAAW,iBACjD,IAAD,CAAG/D,KAAM,IAAI4M,EAAIpZ,gBAAgBxC,YAAkBR,EAAMwD,QAAQ,cAAe,MAAOxE,MAAM,oBAAoBQ,aAAYmb,GAASjB,EAAM,qBAAsBja,GAAQ8N,gBAhBtG,OAChE6wB,QAAaiF,WAAS9E,eAAaliB,EAAMwG,EAAO7I,OAAOvb,IAAI6D,OAC3DinC,EAASzjC,OAAOrD,KAAK,0BAAYoR,cAAc,aAC7C,SAAD,CAAQ7T,YAAOA,IAAS,GAAI4G,SAAAA,GACjC2iC,EAAOxlC,UAAU,SAAD,KAASmM,OA4E7B,MAAMm1B,GAAiBmE,IAvCvB,UAAkBtqC,MAAEA,SAAOqb,OAAQ8B,QAAMrc,OAAO0Z,UAAMlZ,SAAS6iC,MAAQt5B,UAAKu7B,WAASl6B,gBAC9E5M,EAAO+b,EAAO/b,KAAK6d,GACnBxc,EAAW0a,EAAO1a,SAASwc,GAC3Ba,EAAUb,EAAKrS,aAAapI,KAAK,MAEhCzC,EAAQwI,GAAa0D,KAMtBs8B,EAA8Bn8B,OAAKzB,GAAL,CAAUkX,kBAAYA,SAAS,GAAK,WACjE0mB,EAAO5nC,YACPijC,EAAQC,EAAQt5B,GAAQ4Q,EAAOwjB,KAAKmF,GAAY7mB,EAAMrc,EAAO0Z,EAAMlZ,EAAS6iC,EAAQsE,YACnF,MAAD,CAAK3oC,MAAO,QAAQR,SAAa2kC,gBAAetjC,KACrD,MAAD,CAAKb,MAAM,cAAcyqC,cATH95B,MAClB+5B,yBASF9E,GAAD,CAAYlrB,KAAAA,EAAY2C,KAAAA,MACvBgsB,GAAD,CAAW3uB,KAAAA,EAAY2C,KAAAA,IACtBjR,EACA43B,IACA,QAAD,WACE9jC,IAASilC,GAAWzqB,EAAM2C,EAAM,GAAGA,EAAKupB,UACxCzmC,KAAW,MAAD,CAAKH,MAAM,mBACpBsmC,WAASvhC,wBAAU,MAAD,CAAKS,IAAKmlC,EAAEzqC,MAAOF,MAAM,eAC1CuM,GAAD,CAAKtM,KAAM0qC,EAAE1qC,KAAMI,QAASsb,GAASjB,EAAMiwB,EAAEzqC,OAAQI,WAAW,KAAKC,QAAS,IAAMoqC,EAAEr5B,eACrF,OAAD,KAAOq5B,WAAEC,eAAejvB,GAASjB,EAAMiwB,EAAEzqC,cAEzC,MAAD,CAAKF,MAAM,eACTuM,GAAD,CAAKtM,KAAK,SAASI,QAASsb,GAASjB,EAAM,gBAAiBpa,WAAW,KAAKC,QAAS,IAAMsqC,UAAUxI,UAAUC,UAAUpkB,OACxH,OAAD,KAAOA,MAIT+lB,GAEDt5B,KAAS,MAAD,CAAK3K,MAAM,aAAa2K,OAIG,CAACmgC,EAAMC,IACrCD,EAAKvvB,SAAWwvB,EAAKxvB,QACxBuvB,EAAKpwB,OAASqwB,EAAKrwB,MACnBowB,EAAKztB,KAAK4qB,OAAO8C,EAAK1tB,OACtBzW,GAAUkkC,EAAK//B,IAAKggC,EAAKhgC,MACzBnE,GAAUkkC,EAAK9pC,MAAO+pC,EAAK/pC,SAGhC,YAAgBA,6BACU2lC,MAG1B,YAAoB/gC,OACL/B,EAAVmnC,EAAO,MACNnnC,EAAI,EAAGA,EAAI+B,EAAIvD,OAAQwB,UAEV,GAAKmnC,EADhBplC,EAAI7B,WAAWF,MAEb,SAEFmnC,EAGR,YAAoBtwB,EAAc2C,KAAerC,SAC1CjQ,EAAMsS,EAAKrS,qBACRnH,EAAI,EAAGA,EAAIkH,EAAI1I,OAAQwB,GAAK,EAAG,OACjC2B,EAAMuF,EAAI3G,MAAMP,GAAGjB,KAAK,KACxB+gB,EAAShI,GAASjB,EAAMlV,KAAQwV,MAClCxV,IAAQme,SACJA,SAGF5Y,EAAIA,EAAI1I,OAAS,GAGzB,aAAoBqY,KAAEA,OAAM2C,SAAM8oB,UAC7B9oB,EAAKla,iBAAiB2kC,OAClBzqB,EAAKla,MAAM4B,IAAIsY,GAAM4tB,UAAU5tB,EAAKla,cAEtCkD,EAAI8/B,EACP9oB,EAAKla,MAAM0jC,OAAOqE,SAASr5B,WAAYs5B,EAAE9tB,KAAK9I,WAAW8I,KACzDA,EAAKla,MAAM0jC,OAAOvjC,IAAI+Z,GAAM,MACd,IAAbhX,EAAEhE,cAAqB,WACrB+oC,EAAUzvB,GAASjB,EAAMrU,EAAE,GAAGuJ,SAAW,WAAE,GAAGoL,UAAU,WACvDqwB,GAAU,aAAc,eAAgBD,GAGhD,aAAmB1wB,KAAEA,OAAM2C,UACpB7X,EAAM6X,EAAK+nB,YAAY,QAAQp6B,aAAapI,KAAK,KACjDwoC,EAAUzvB,GAASjB,EAAMlV,UAC3B4lC,IAAY5lC,EAAY,KACrB6lC,GAAU,YAAa,OAAQD,GAGvC,MAAMC,GAAY,CAAC7rC,EAAcS,EAA4BqrC,WACrDnrC,EAAQwI,GAAa0D,cAEpB,MAAD,CAAKrM,MAAO,aAAaR,IAAOW,EAAS,QAAU,KAAMI,QAASoI,GACvElI,GAAQR,KACR,OAAD,CAAMD,MAAM,cAAcsrC,KAkF5B,YAAiCtqC,EAAYymC,iBACI,eAA5C,0BAAOjoC,eAAMgF,QAAQ,cAAe,KAChCxD,EAEHwS,SAASxS,WAAOyD,WAGV2P,KAAK,CAAE3U,GAAIgoC,EAAWplC,OAAQge,KAAMrf,EAAMyD,OAAOiqB,YACrDgZ,GAAwB,WAAMjjC,OAAOkpB,WAAW,GAAI8Z,IAHnDzmC,EAMT,YAAiC2sB,EAAc8Z,UACpB,IAAtBA,EAAWplC,OAAqBsrB,EAC7B,CACNnuB,KAAM,sBACNiF,OAAQ,CACPiqB,UAAW+Y,EAAW1nB,QAAQM,KAC9BsN,QAASya,GAAwBza,EAAS8Z,kBC3nBxBjmC,QAAEA,QAAS2B,cAAO6T,UAAawpB,UAC7C9lB,KAAEA,GAASyD,SACZhb,IAAU6T,GAAwB,SAAT0D,yBAEvB9K,GAAS27B,UACP,6BAA6BllC,EAAEE,mBAC/BqJ,MAAMvJ,SAEXuJ,0BAEK47B,GAAY5iC,EAAS,aACrBzF,GAAO,WACGqc,EAAQ,SAGnB,MAAD,CAAKxf,MAAM,OAAOwiC,UAAQ,UAC/BiJ,GAADn/B,KAAc,CAACnJ,MAAAA,EAAOuX,KAAAA,EAAMlZ,QAAAA,EAASwV,YAAAA,mBCvBhB00B,KAAEA,UAClBnuB,YAAEA,GAAgBouB,KAClBC,EAA8B,UAAhBruB,EAA0B,QAAU,GAClDsuB,EAEH,WAAWC,SAASC,qBAAqBH,iBAEpCI,GAAD,CACNn9B,KAAK,0BACLo9B,OAAO,mCACPprC,SAAS,OACTqrC,WAAW,uBACXC,QAAST,EAAO,WAAa,WAC7BA,KAAAA,EACAU,iBAAiB,IACjBC,aAAa,IACbC,cAAc,MACdhrC,MAAOuqC,EACPnxB,KAAK,OCjBP,MAAM6xB,GAA+C,CACpDC,OAAQ,iBACRC,KAAM,OACNC,MAAO,2BAIDhyB,KAAEA,SAAMC,iBAAQC,GAAmBuD,MACnC7c,MAAEA,cAAOkc,GAAgBmuB,MACzBnqC,QAAEA,GAAYmrC,MACd3uB,MAAEA,GAAU4uB,KACZxvB,EAAMyvB,GAAaznC,cAEjB,SAAD,OACL,MAAD,CAAKpF,MAAM,WACT8sC,GAAD,CAAM9sC,MAAM,YAAYwQ,KAAK,IAAIhQ,aAAYma,EAAO,QAAS6nB,UAAQ,aAAauK,GAAMC,QACvF,KAAD,KAAKhvB,GACJZ,KAAQ6f,GAAD,CAASh9B,KAAK,eAAeI,QAASsa,EAAO,oBAAqB6nB,UAAQ,sBAChF/9B,GAAOC,WACNmN,WAAYjN,EAAE/D,6BAAkBA,WAAY0f,GAAa/e,EAASoD,EAAEgT,cACpE7S,UACCwH,GAAD,CAAKrM,MAAOya,EAAO/V,EAAEnF,IAAKU,OAAQyE,EAAEnF,KAAO2d,EAAI3d,GAAIc,QAAS,IAAM0sC,EAAM5oC,GAASO,EAAEZ,cAItF,MAAD,OACE,KAAD,OACE,KAAD,CAAIw+B,UAAQ,uBACVvF,GAAD,CAASh9B,KAAK,QAAQI,QAASsa,EAAO,aACpClW,GAAO4W,UAAUtW,KAAI,EAAGuI,KAAAA,EAAMiD,KAAAA,OAC7BhE,GAAD,CAAKrM,MAAOqQ,EAAMpQ,OAAQmN,IAASoN,EAClCna,QAAS,IAAMqa,EAAetN,WAIjC,KAAD,CAAIk1B,UAAQ,oBACVvF,GAAD,CAASh9B,KAAMssC,GAAOjrC,GAAQjB,QAASsa,EAAO,UAC5C7T,OAAOvB,QAAQgnC,IAAQxnC,KAAI,EAAEmoC,EAAIjtC,OAChCsM,GAAD,CAAKtM,KAAAA,EAAYC,MAAOya,EAAO,SAASuyB,KAAO/sC,OAAQ+sC,IAAO5rC,EAC7Df,QAAS,IAAMid,EAAY0vB,WAI9B,KAAD,CAAIltC,MAAM,YACR,IAAD,CAAGwQ,KAAK,6CAA6CzI,OAAO,SAAS4Q,IAAI,aAAa3Y,MAAM,oBAAoBQ,aAAYma,EAAO,WACjIla,GAAQ+N,2BCnDdw+B,OAAO,MAAD,CAAK/hC,MAAM,KAAKC,OAAO,KAAKyB,QAAQ,YAAY8gB,KAAK,OAAO/gB,MAAM,gCAA8B,OAAD,CAAMzB,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,cAAY,OAAD,CAAM3jB,EAAE,IAAImB,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,cAAY,OAAD,CAAM2f,EAAE,KAAKniC,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,cAAY,OAAD,CAAM3jB,EAAE,KAAKsjC,EAAE,KAAKniC,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,cAAY,OAAD,CAAM3jB,EAAE,KAAKsjC,EAAE,KAAKniC,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,cAAY,OAAD,CAAM3jB,EAAE,KAAKsjC,EAAE,KAAKniC,MAAM,KAAKC,OAAO,IAAIiiC,GAAG,IAAI1f,KAAK,aACnc4f,SAAS,MAAD,CAAKpiC,MAAM,KAAKC,OAAO,KAAKyB,QAAQ,YAAYD,MAAM,gCAA8B,OAAD,CAAMG,EAAE,6HAA6H4gB,KAAK,cAAY,OAAD,CAAM5gB,EAAE,+HAA+H4gB,KAAK,cAAY,OAAD,CAAM5gB,EAAE,kIAAkI4gB,KAAK,cAAY,OAAD,CAAM5gB,EAAE,6HAA6H4gB,KAAK,cAAY,OAAD,CAAM5gB,EAAE,sIAAsI4gB,KAAK,cAAY,OAAD,CAAM5gB,EAAE,sIAAsI4gB,KAAK,aACv+B6f,SAAS,MAAD,CAAKriC,MAAM,KAAKC,OAAO,KAAKyB,QAAQ,YAAYD,MAAM,gCAA8B,SAAD,CAAQonB,GAAG,KAAKyZ,GAAG,KAAKC,EAAE,KAAK/f,KAAK,cAAY,OAAD,CAAM7gB,YAAU,UAAU6gC,YAAU,UAAU5gC,EAAE,utCAAutC4gB,KAAK,2BCiB33C6f,OAAEA,QAAQI,QAAOC,QAAOC,SAAOC,SAAQC,WAAQC,cAAUC,UAC9ErzB,OAAEA,GAAWwD,MACb3c,QAAEA,GAAYmrC,MACbsB,EAASC,GAActlC,GAAS,IAChCulC,EAASC,GAAcxlC,GAAS,IAChCylC,EAASC,GAAc1lC,GAAS,GACjC2lC,EAAQtmC,EAAe,IACvBumC,EAAU,uBAAuBd,qBAAyBG,KAAUD,OAEhE,qBACHa,EAAanB,EAAOI,KACuB,wCAAzBJ,iBAAQjrC,UAAU,MACpC6F,QAAQxE,YAAagrC,EAAEC,WACvBzmC,mCAAuBolC,UAAU,IAAIvoC,eACpC6pC,EAA6B,iBAAVj8B,EAAqBA,EAAQA,EAAMpC,KACtDvM,G5B0FmB+Q,E4B1FDvT,E5B0FuB6b,E4B1FduxB,E5B4F5B,GAAGj6B,GADMlQ,GAAOwQ,SAAStQ,SAAUuM,EAAEzR,KAAOsV,IACzB,qCAAqCsI,aAFpCtI,EAAsBsI,Q4BzFzCwxB,EAAO,IAAIC,QAAK,CACrBC,IAAK,CAAC/qC,GACNmW,OAAQ,CAAC,OACT0zB,OAAAA,EACAmB,KAAMpB,MAEF/L,GAAG,OAAO,QACH,YAENoN,EAAY,KACbhB,GAAWM,EAAMrmC,QAAQ4J,UAAyB,WAAd48B,EAAElvB,cAC9B,UAGQ,WAAjBqvB,EAAKrvB,oBACG,IAAMyvB,QAEZpN,GAAG,QAAQ,YAIVgN,QAEG,KACT,CAACnB,EAAOJ,OAED,OACHplC,QAAQxE,YAAagrC,EAAEM,KAAKpB,OAChC,CAACA,OAEM,OACH1lC,QAAQxE,YAAagrC,EAAEb,OAAOA,OAClC,CAACA,UAEEn/B,EAAO,QACRu/B,GAAWI,mBAETQ,EAAO/rC,KAAKC,MAAMD,KAAKE,SAAWurC,EAAMrmC,QAAQ7F,UAChD6F,QAAQ2mC,GAAMngC,UACT,IAENigC,EAAO,OACNzmC,QAAQxE,YAAagrC,EAAEC,aAEpB,KACLX,eAAwB,IAAMt/B,KAAgB,GAARi/B,KACxC,CAACK,OAEM,IACF,IAAMW,KACX,UAEIO,EAAYC,GAAiBvmC,GAAS,GACvCwmC,EAAcnnC,OAA2B,YAUvC,MAAD,CAAKjI,MAAO,eAAeiuC,EAAU,WAAaE,EAAU,WAAa,KAAKE,EAAU,WAAa,QAC1G9hC,GAAD,CAAKvM,MAAM,OAAOC,KAAMouC,EAAU,QAAUJ,EAAU,OAAS,OAAQ/tC,MAAOya,EAAO,eAAgBpa,QAASmO,EAAMrO,QAAmBsa,EAAV0zB,EAAiB,uBAA0BJ,EAAiB,uBAAiC,qBAAsB3tC,WAAW,SAC1P0Q,GAAD,CAAWhR,MAAM,sBAAsBuI,KAAK,aAAaq6B,YAAY,EACpE5hC,MAAO0sC,EAAO9lC,YAAmBkmC,EAAO,CAAEJ,cAC1C,QAAD,CAAO1tC,MAAM,eAAe2a,EAAO,gBAAgB,QAClDxJ,GAAD,CAAanR,MAAM,sBAAsBmG,IAAK,EAC7CnF,MAAO2sC,EAAO/lC,YAAmBkmC,EAAO,CAAEH,cAC1C,QAAD,CAAO3tC,MAAM,eAAe2a,EAAO,gBAAgB,QAClDvJ,GAAD,CAAYpR,MAAM,yBAAyBmG,IAAK,GAAKD,IAAK,EAAGmpC,KAAM,IAClE7uC,aAAYotC,EAAMtQ,QAAQ,GAAIyF,MAAO,YAA+B,OAAd,OACtD/hC,MAAO4sC,EAAOhmC,YAAmBkmC,EAAO,CAAEF,cAC1C,QAAD,CAAO5tC,MAAM,gBAAgB2a,EAAO,iBAAiB,QACpDvJ,GAAD,CAAYpR,MAAM,0BAA0BmG,IAAK,EAAGD,IAAK,EAAGmpC,KAAM,IACjE7uC,aAAYqtC,EAAOvQ,QAAQ,GAAIyF,MAAO,QAAiB,IAAT8K,KAC9C7sC,MAAO6sC,EAAQjmC,YAAoBkmC,EAAO,CAAED,eAC5CthC,GAAD,CAAKvM,MAAO,QAAOkvC,EAAa,UAAY,IAAMjvC,KAAMivC,EAAa,QAAU,WAAYhvC,MAAOya,EAAO,QAASta,QAAsBsa,EAAbu0B,EAAoB,SAAmB,uBACjK3uC,QAzBW,eACF8hC,UAAUC,UAAUkM,MAChB,QACc,IAAxBY,EAAYlnC,sBAAoCknC,EAAYlnC,WACpDA,QAAUY,YAAW,QAClB,KACZ,UAoBFyD,GAAD,CAAKvM,MAAM,SAASC,KAAK,WAAWI,QAASsa,EAAO,uBACnDpa,QAAS,8BC3Gayd,MAAEA,OAAOsxB,OAAMhhC,OAAMrO,WAAMmM,UAC7C0G,aACJ,MAAD,CAAK9S,MAAM,aACTC,GAAQ8sC,GAAM9sC,KACd,MAAD,OACE,KAAD,KAAK+d,KACJ,IAAD,KAAIsxB,KAGLljC,KAAa,MAAD,CAAKpM,MAAM,aACtBoM,WAGIkC,IACH,IAAD,CAAGtO,MAAM,YAAYwQ,KAAMlC,GAAOwE,KACjC,MAAD,CAAK9S,MAAM,aAAa8S,gBCfHvN,QAAEA,WAAS+L,SAAU2I,UACvCs1B,EAAQl/B,GAAQ,iBACfm/B,EAAmC,aAC9B78B,KAASpN,EAAS,OACtB1B,EAAI8O,EAAMxO,QAXD,QAYXN,GAAK,EAAG,OACLi2B,EAAOnnB,EAAMvO,MAAM,EAAGP,0BACT,IAAIuQ,KAAKzB,EAAMvO,MAAMP,EAAI,YAGvCiD,OAAOvB,QAAQiqC,KACpBjqC,GAEGkqC,EAASp/B,GAAQ,IACf9K,EAAQsM,YAAaxL,EAAE0L,SArBd,QAsBdxM,IAEImqC,EAAQC,GAAa/mC,EAAS,IAAI4yB,cAUjC,MAAD,CAAKx7B,MAAM,YAAY+iC,MAAO,mBAAa9oB,IAAU,MAC1Ds1B,EAAMxqC,KAAI,EAAEyoC,EAAGoC,OAAc,MAAD,OAC3BC,GAAD,CAAe5vC,KAAMyvC,EAAO/wB,IAAI6uB,GAAK,gBAAkB,eAAgBhoC,IAAKgoC,EAAGttC,MAAOstC,EAAGjtC,QAAS,KAAM2lC,OAX1FpM,EAWiG0T,EAV5GkC,EAAO/wB,IAAImb,KACPr0B,OAAOq0B,KAEPgN,IAAIhN,UAEF,IAAI0B,IAAIkU,IANJ,IAAC5V,MAYZ4V,EAAO/wB,IAAI6uB,MACXsC,GAAD,CAAUvqC,QAASqqC,EAASt+B,YAAeA,EAAS,GAAGk8B,KAAKnnC,KAAM4T,kBAAmB,GAAK,OAE3Fw1B,EAAO1qC,UAAU8qC,GAAD,CAAe5vC,KAAK,OAAOuF,IAAKa,EAAGnG,MAAOmG,EAAG9F,QAAS,IAAM+Q,EAASjL,QASxF,aAAuBpG,KAAEA,QAAMC,UAAOK,aAC7B,MAAD,CAAKP,MAAM,QAAQO,QAAAA,GACxBE,GAAQR,GACRC,gBC9C4B+S,OAAEA,aAAQ88B,YAAYC,aAC5C,MAAD,CAAKhwC,MAAM,qBAChB,MAAD,CAAKA,MAAM,uBACTiwC,GAAD3jC,KAAiB2G,EAAOzR,YACvByuC,GAAD3jC,KAAiB2G,EAAOV,WAExB,MAAD,CAAKvS,MAAM,kBACTiT,EAAOL,KAAK7N,UAAYmrC,GAAD,CAAchwC,MAAOmP,EAAK9O,QAASyvC,EAAY,IAAMA,EAAU3gC,QAAO,EAAWlP,aAAQ4vC,WAAYh+B,SAAS1C,UAEtI,MAAD,CAAKrP,MAAM,oBAAoBmwC,wBAAyB,CAAEC,OAAQC,GAAOp9B,EAAOH,aAIlF,aAAqBrT,GAAEA,UAAI6T,WACP,OAAZA,IACH,OAAD,KAAO7T,KACN,IAAD,CAAG+Q,KAAM,2CAA2C8C,IAAWvL,OAAO,UAAUtI,gBCjBvDS,MAAEA,SAAOC,UAAQI,UACvCskB,EAAkB,aAAV3kB,EAAuB,EAAI4F,GAAW5F,GAAS,aACrD,MAAD,CAAKF,MAAO,gBAAgBG,EAAS,UAAY,KAAKI,EAAU,aAAe,KAAMwiC,MAAO,WAAWle,IAAStkB,QAAAA,GAC3G,aAAVL,GAAwBO,GAAQgM,MAChCvM,gBCD2BowC,QAAEA,eAASC,UAClC51B,OAAEA,GAAWwD,MAEZzY,EAAQ+L,GAAa7I,EAAS,KAC9BgK,EAAM49B,GAAW5nC,EAAmB,IACrConC,EAAa3gC,IACbuD,EAAKb,SAAS1C,KAGVuD,EAAKf,WAAYG,IAAM3C,OAFvB,IAAIuD,EAAMvD,KAMdohC,EAAqBpgC,GAAQ,WAC5B7E,EAAQ9F,EAAOZ,MAAM,KAAKC,QAAS2rC,EAAE9+B,OAAO++B,gBAAe9+B,WAAY6+B,EAAEruC,OAAS,WACnE,IAAjBmJ,EAAMnJ,QAAgC,IAAhBuQ,EAAKvQ,OAAqBiuC,QAC7CA,WAASz+B,gBACVe,EAAKd,UAAamB,EAAOL,KAAKb,SAAS1C,YACpC,QAEFyD,EAAUG,EAAOL,KAAKhQ,KAAK,KAAO,IAAMqQ,EAAOH,QAAQ69B,qBACtDnlC,EAAMsG,UACR4+B,EAAEn8B,WAAW,KACI,IAAbm8B,EAAEruC,SAAiByQ,EAAQf,SAAS2+B,EAAEtsC,MAAM,IAE7C0O,EAAQf,SAAS2+B,UAGxB,CAACJ,EAAS5qC,EAAQkN,KAEdg+B,EAAMC,GAAWjoC,EAA0B,SAAjB2nC,GAE3BO,EAAmBzgC,GAAQ,UACzBogC,WAAoBG,MAAK,CAAC7qC,EAAGC,IAAM4qC,EAAO5qC,EAAEgN,MAAQjN,EAAEiN,MAAQjN,EAAEiN,MAAQhN,EAAEgN,SAC/E,CAACy9B,EAAoBG,sBAGtB,MAAD,CAAK5wC,MAAM,qBACTgR,GAAD,CAAWhR,MAAM,iCAAiCuI,KAAK,aAAab,YAAaiT,EAAO,oBACvF3Z,MAAO0E,EAAQkC,SAAU6J,MACzBlF,GAAD,CAAKtM,KAAM2wC,EAAO,YAAc,WAAY1wC,MAAO0wC,EAAO,eAAiB,eAAgBrwC,QAAS,IAAMswC,GAASD,MAEnHh+B,EAAKvQ,OAAS,KAAM,MAAD,CAAKrC,MAAM,kBAC7B4S,EAAK7N,UAAYmrC,GAAD,CAAchwC,MAAOmP,EAAK9O,QAAS,IAAMiwC,EAAQ59B,EAAKf,WAAYG,IAAM3C,YAEzF,MAAD,CAAKrP,MAAM,uBACY,IAArB8wC,IACG,OAAD,KAAOn2B,EAAO,YACc,IAA5Bm2B,EAAiBzuC,SACf,OAAD,KAAOsY,EAAO,yBACdm2B,EAAiB/rC,UACjBgsC,GAAD,CAAgB99B,OAAAA,EAAgB88B,WAAYn9B,EAAMo9B,UAAAA,qBCjD1BxuC,QAAEA,UACzBmZ,OAAEA,GAAWwD,MAEZ6yB,EAAKC,GAAUroC,EAAc,cAE7BsoC,EAAYC,GAAiBvoC,OAA+B,MACzD,UAEPsQ,SAAmBi4B,EACnBC,EAAWrsC,eAAekB,IAAG2M,KAAM3M,EAAE2M,KAAKf,WAAYG,IAAM/L,EAAEsM,MAAM9S,YAEpE4xC,UAAWC,QAAQ1hC,MAAMvJ,OACzB,UAEGoqC,EAAqBpgC,GAAQ,UAClC6gC,WAAYr/B,WAAY5L,EAAEzE,QAAQ/B,KAAO+B,EAAQ/B,IAAMwG,EAAEsM,MAAM9S,KAAO+B,EAAQ/B,MAC/E,CAAC+B,EAAQ/B,GAAIyxC,sBAGX,MAAD,CAAKlxC,MAAM,oBACT,KAAD,KAAKwB,EAAQ+O,QACZ,MAAD,CAAKvQ,MAAM,kBACTuxC,GAAD,CAAiBrxC,MAAOya,EAAO,qBAAsB3Z,MAAOwwC,GAAYhwC,OACvE+vC,GAAD,CAAiBrxC,MAAOya,EAAO,2BAA4B3Z,MAAOQ,EAAQiwC,eAAgBnjC,KAAM9M,EAAQ/B,KAAO+B,EAAQiwC,eAAiB,iBAAiBjwC,EAAQiwC,sBAAmB,MACnLF,GAAD,CAAiBrxC,MAAOya,EAAO,yBAA0B3Z,MAAOQ,EAAQkwC,iBACvEH,GAAD,CAAiBrxC,MAAOya,EAAO,6BAA8B3Z,MAAOQ,EAAQmwC,qBAC3EJ,GAAD,CAAiBrxC,MAAOya,EAAO,6BAA8B3Z,MAAOQ,EAAQowC,sBAC3EL,GAAD,CAAiBrxC,MAAOya,EAAO,iCAAkC3Z,MAAOQ,EAAQqwC,2BAEhF,MAAD,CAAK7xC,MAAM,kBACT,OAAD,CAAMA,MAAe,cAARgxC,EAAsB,WAAa,GAAIzwC,QAAS,IAAM0wC,EAAO,cAAet2B,EAAO,iCAC/F,OAAD,CAAM3a,MAAe,eAARgxC,EAAuB,WAAa,GAAIzwC,QAAS,IAAM0wC,EAAO,eAAgBt2B,EAAO,2BAElG,MAAD,CAAK3a,MAAM,eACD,cAARgxC,KAAwBc,GAAD,CAAexB,QAASG,EAAoBF,aAAa,QACxE,eAARS,KAAyBe,GAAD,CAAQrG,KAAM,WAAWlqC,EAAQ/B,sBAMlC+B,UACpB,IAAIwwC,KAAKxwC,EAAQywC,cAAcC,wBAAmB,EAAW,CAAEC,IAAK,UAAWC,MAAO,QAASC,KAAM,yBC/ChF7wC,QAAEA,OAAS8M,UACjCqM,OAAEA,GAAWwD,cAEX,IAAD,CAAGne,MAAM,gBAAgBwQ,KAAMlC,KACpC,OAAD,CAAMtO,MAAM,cAAcwB,EAAQ/B,MACjC8xC,GAAD,CAAiBrxC,MAAOya,EAAO,qBAAsB3Z,MAAOwwC,GAAYhwC,GAAU8wC,SAAO,MACxFf,GAAD,CAAiBrxC,MAAOya,EAAO,yBAA0B3Z,MAAOQ,EAAQkwC,aAAcpJ,UAAQ,MAC7FiJ,GAAD,CAAiBrxC,MAAOya,EAAO,wBAAyB3Z,MAAOQ,EAAQowC,kBAAmBtJ,UAAQ,kBCLxErzB,SAAEA,OAAU3G,UACjCqM,OAAEA,GAAWwD,MAEZo0B,EAAWC,GAAgB5pC,GAAS,IACpClD,EAAQ+L,GAAa7I,EAAS,IAE/B6pC,EAAmBpiC,GAAQ,IAAM4E,EAASpD,aAChC,aAAXX,EAAE1R,OAAwB+yC,IACvBrhC,EAAEzR,GAAGsS,SAASrM,MAClB,CAACuP,EAAUs9B,EAAW7sC,sBAIxB,MAAD,CAAK1F,MAAM,uBACTgR,GAAD,CAAWhR,MAAM,+BAA+BuI,KAAK,aAAab,YAAaiT,EAAO,mBACrF3Z,MAAO0E,EAAQkC,SAAU6J,MACzBihC,GAAD,CAAUxyC,MAAM,oBAAoBc,MAAOuxC,EAAW3qC,SAAU4qC,OAEhE,MAAD,CAAKxyC,MAAM,gBACTyyC,EAAiB1tC,UAAU4tC,GAAD,CAAcnxC,QAAS0P,EAAG5C,WAAMA,WAAO4C,EAAEzR,QACvC,IAA5BgzC,EAAiBpwC,UAAiB,OAAD,KAChCsY,EAAO,uCCtBoBza,MAAEA,QAAOc,OAAOsN,UAAMgkC,WAAShK,aACtD,MAAD,CAAKtoC,MAAO,oBAAmBsoC,EAAW,yBAA2B,OAC1E,OAAD,CAAMtoC,MAAOsyC,EAAU,6BAA0B,GAAYpyC,EAAM,QAClE,OAAD,CAAMF,MAAM,0BAA0BgB,GACrCsN,KAAS,IAAD,CAAGkC,KAAMlC,EAAMtO,MAAM,yBAAyBS,GAAQ8N,6BCJxC1N,SAAEA,UACpB8Z,OAAEA,GAAWwD,eACVxD,EAAO,2BAA4BA,EAAO9Z,OAC3C,OAAD,OACL,MAAD,CAAKb,MAAM,YACTyE,GAAOC,WAAWmN,WAAYjN,EAAE/D,WAAaA,IAAUkE,UACtD6tC,GAAD,CAAU50B,MAAOrD,EAAO/V,EAAEnF,IAAK6O,KAAMjK,GAASO,EAAEZ,iCCL7C2W,OAAEA,GAAWwD,MACZvO,EAAOijC,GAAYjqC,EAAuB,SACxC+R,EAAO,0BAETu2B,EAAYC,GAAiBvoC,EAAmB,cAC7C,UAEPsQ,SAAmBi4B,EAAcC,KACjCC,mBAAqBzhC,MAAMvJ,KAAaA,QACxC,MAGK,OAAD,OACLysC,GAAD,CAAItzC,KAAK,OAAOC,GAAG,cAClBmQ,KAAUmjC,GAAD,CAAYnjC,MAAAA,EAAcC,UAAW,IAAMgjC,EAAS,UAC7D,MAAD,CAAK7yC,MAAM,eACT8xC,GAAD,CAAexB,QAASY,EAAYX,aAAa,uCCT7C51B,OAAEA,GAAWwD,MACb3c,QAAEA,gBAASgd,GAAkBmuB,MAC7BzwB,QAAEA,OAASpO,aAAMuO,WAAYC,YAAUC,GAAcy2B,MACpDpjC,EAAOijC,GAAYjqC,EAAgC,OACnDqqC,EAAeC,GAAc3H,QAChC0H,WACW1sC,QAAU,iDAAiD0sC,EAAc1sC,YAC/E,OAAD,OAAOwsC,GAAD,CAAYnjC,MAAOqjC,EAAepjC,UAAWqjC,WAGrD91B,EAAMyvB,GAAaznC,SACpBgY,WACI,OAAD,OAAO21B,GAAD,CAAYnjC,MAAO,0BAA0BxK,gBAGrD+tC,EAAkB1uC,GAAOwQ,SAC7BpD,WAAY0O,GAAarP,EAAEzR,GAAI2d,EAAIxF,WAAYwF,EAAIvF,cACnD9S,QAASmM,EAAEzR,QAEJkb,EAAO,kBAAmBA,EAAOyC,EAAI3d,KAAM0zC,GAE/C5yB,GAAa/e,EAAS4b,EAAIxF,eACrB,6CAA6CwF,EAAIxF,cAEtD2I,GAAa/e,OAAS,EAAW4b,EAAIvF,eAChC,qDAAqDuF,EAAIvF,oBAI7Du7B,EADe9tC,GAAgBF,KACF9B,IAAI,aAC7B,KACLH,GAASiwC,KACDA,GAAel6B,qBAClBqf,MAAM1X,YAAUugB,UAAU9gB,IAAS,MAC3B,CAAE9e,QAAAA,EAAS8e,OAAQ8yB,SAGlC,CAACA,UAEGjwC,EAAOkwC,GAAYzqC,EAA2B,OAC9CoO,EAAas8B,GAAkB1qC,EAAoC,SAChE,OACA,QACA,qBvC6D0BpH,gBACV+X,GAAW/X,IAClBwV,auC9DHxV,GACb0X,SAAUo6B,EAAettC,oBvCcExE,EAAoB/B,aAC7CmW,GAAOnW,IAAOmW,GAAOnW,GAAI+B,UAAYA,EAAS,OAC5C+xC,QAAoBh6B,GAAW/X,MAEnBgyC,YAAUD,EAAYh8B,QAAS,2BACjCk8B,aAAW,CAC1B,CACCj0C,KAAM,SACN6gB,KAAMyjB,aAAWyP,EAAYz8B,YAAa,CAAEwoB,UAAW,WAAYtkB,OAAQ,CAAEmvB,KAAM,mCAEpF,CACC3qC,KAAM,SACN6gB,KAAMmzB,YAAUD,EAAYh8B,QAAS,wBAEpC,CAAEutB,cAAe,kBAEd4O,EAAa,YAAOhvC,WAAWC,SAAUC,EAAEnF,KAAOA,cAAK8b,WACxDm4B,QACE,IAAIptC,MAAM,qBAAqB7G,eAG/B8b,EAASg4B,EAAYh8B,QAAQjU,IAAIowC,GACjCvwC,EAAQ,IAAI0d,YAAUtF,EAAQ,CAAE6lB,WAAW,IAC7CxrB,GAAOnW,KACJ84B,MAAM3iB,GAAOnW,GAAI0D,MAAMsR,MAAM,MAE7Bk/B,UAAS,KACTzlC,QAAU,CAACsH,KAAKC,UAAUtS,EAAMsR,WAEhChV,GAAM,CAAE0D,MAAAA,EAAO3B,QAAAA,SACd6E,SACFutC,EAAM,IAAIttC,MAAM,yBAAyB7G,mBAAoB+B,OAAa+E,GAAQF,YACpFA,aAAaC,UAAW4I,MAAQ7I,EAAE6I,OAChC0kC,UAGDh+B,GAAOnW,GAAI0D,OuCjDR3B,EAAS4b,EAAI3d,IACpByZ,MAAK7O,MAAMwpC,UACDlyC,aAAayb,EAAI3d,IACvB2zC,EAAe,OACZ9yB,QAAewzB,EAAWV,KAC9B7a,MAAM1X,YAAUugB,UAAU9gB,IAAS,KAE7BuzB,MAETxC,mBAAqBzhC,MAAMvJ,KAAaA,QACxC,CAAC7E,EAAS4b,EAAI3d,WAEVs0C,EAAOC,GAAYprC,GAAS,MAC1BzF,GAAO,QACA,CAAE3B,aAAS,EAAW8e,YAAQ,MACpC,SACA,YAGH2zB,EAAYC,GAAiBtrC,EAAS,KACtCurC,EAAWC,GAAUC,MACrBC,EAAWC,GAAeF,KAE3BG,EAAe,QAChBP,sBAAqBx0C,KAAMw0C,GAAc9wC,GAAS6T,EAAa,OAC5DvC,EAAOusB,GAAU79B,EAAO6T,GACdqF,EAAWe,EAAI3d,SAAIqO,WAAMrO,GAAI,CAAEA,GAAIw0C,EAAYx/B,KAAAA,aAK1D3G,WACWA,WAAMrO,UAGZqO,WACIA,WAAMrO,QAUZ,KACLqO,KACWA,EAAKrO,MAElB,CAACqO,OAEM,WACL3K,MACW,0BAAM1D,MAAM,IACtBqO,GAAQsP,EAAI3d,KAAOqO,EAAKtO,QACrB+4B,MAAM1X,YAAUugB,UAAUtzB,EAAK2G,UAE7B,MAER,CAAC3G,EAAM3K,UAiBJsxC,EAAWpuC,IACZA,EAAEujC,SAAqB,MAAVvjC,EAAEb,QACRzD,eAAe,OAAQ,qBAC1B2yC,QACGruC,EAAEujC,SAAqB,MAAVvjC,EAAEb,SACfzD,eAAe,OAAQ,qBAC1B4yC,SAGH9jC,EAAaxK,OACdA,EAAEujC,SAAqB,MAAVvjC,EAAEb,QAChBklC,iBACEvnC,GAAS6T,GAAelJ,GAAM,IACvB/L,eAAe,OAAQ,gBAC3B0S,EAAOusB,GAAU79B,EAAO6T,KACnBoG,EAAI3d,SAAIqO,WAAMrO,GAAI,CAAEA,SAAIqO,WAAMrO,GAAIgV,KAAAA,OACpC,YAKF,cACA/J,iBAAiB,QAAS+pC,YAC1B/pC,iBAAiB,UAAWmG,GAC9B,cACGjG,oBAAoB,QAAS6pC,YAC7B7pC,oBAAoB,UAAWiG,MAEvC,CAAC1N,EAAO6T,EAAalJ,UAEjB8mC,EAASC,GAAcjsC,EAAmB,OACvC,qBvCxD0BpH,SAC9B+xC,QAAoBh6B,GAAW/X,aACjB+xC,EAAYz8B,YACzBy8B,EAAYz8B,cuCsDHtV,GAAS0X,YACZpC,EAAYxT,IAAI8Z,EAAI3d,IAAIsF,QAAS2X,EAAEtY,MAAM,UAEnDitC,mBAAqBzhC,MAAMvJ,KAAaA,QACxC,CAAC7E,EAAS4b,EAAI3d,WAOXq0C,EAAazpC,MAAO5K,wBAElB6gB,QAAeI,GAAYlf,EAAS,WAAI6b,QAAQD,EAAI3d,GAAIA,GACxD2D,QAAOD,WAAOG,IAAI,IAAIC,OAAK,CAAC,YAAa,sBACf,KAA5B,0BAAQ3B,oBAAWwB,YAA+B,IAATA,MACrCxB,UAAUwB,KAAOA,OACoB,KAAxC,WAAOxB,UAAU+e,uBAAcvd,UAC3BxB,UAAU+e,aAAavd,KAAOA,IAGhCkd,QACCja,KACCA,aAAaC,MAAQD,EAAIE,GAAQF,OAIrCyuC,EAAaC,GAAkBnsC,EAAShJ,OAAOo1C,WAAa,MAC5D5U,EAAQ6U,GAAWrsC,EAAS,IAC5By3B,EAAY6U,GAAetsC,EAAS,IACpC03B,EAAU6U,GAAavsC,EAAS,IAuBhCsmC,EAAY3O,GAAe8T,MAE3Be,EAAcC,IAAmBzsC,GAAS,GAC3C0sC,GAAazW,GAAW9sB,SAASqL,EAAI3d,OAAoB,kCAAPA,IAAwC8gB,GAAa/e,EAAS,SAClH4zC,IAAiBE,QAA4B,OAC7CC,GAAe,EACfD,SAA4B,GAC5BR,QAA6B,qBAW/B,OAAD,CAAM90C,MAAOo1C,EAAe,cAAgB,MAC1CtC,GAAD,CAAIrzC,GAAG,sBAAsBD,KAAK,WACjC,MAAD,CAAKQ,MAAM,cACT,MAAD,CAAKA,MAAO,oBAAoB8N,GAAQ,gBACtC,MAAD,CAAK9N,MAAM,aACTi9B,GAAD,CAASh9B,KAAK,OAAOC,MAAOgc,EAAQ3L,KAAMpE,UAAU,KAClDI,GAAD,CAAKtM,KAAK,aAAaC,MAAOya,EAAO,iBAAkBpa,QAAS,IAAM0sC,EAAM,cAC3En/B,KAASvB,GAAD,CAAKtM,KAAK,OAAOC,MAAOya,EAAO,oBAAqBpa,QAASgc,MACrEi5B,GAAD,CAAYjkC,kBAAmBoJ,EAAwB,WAAjBuB,EAAQ3L,KAAoB,wBAA0B,kBAAmBiB,UAAWmJ,EAAO,oBAAqBtJ,OAAQ6K,EAAQF,MAAMnK,WAAYgL,EAAErd,OAAS4d,EAAI3d,KAAIsF,QAAS8X,EAAEpd,KAAK6R,SAAW7R,GAAO6c,EAASc,EAAI3d,GAAIA,QAE9PuR,GAAD,CAAWhR,MAAM,gBAAgB0H,YAAaiT,EAAO,wBAAyB3Z,MAAOizC,EAAYrsC,SAAUssC,EAAepjC,QAAS0jC,EAAc1R,OAAQ0R,IACxJ1mC,KAASvB,GAAD,CAAKtM,KAAK,WAAWI,QAASsa,EAAO,uBAAwBpa,QAvJxD,KACduN,KACQsP,EAAI3d,GAAIqO,EAAKrO,GAAI,QAuJzBs0C,IAAS,MAAD,CAAK/zC,MAAM,eAAeS,GAAQgN,UACxC0mC,IAAa,MAAD,CAAKn0C,MAAM,sBAAsBS,GAAQwM,OACpDqnC,KAAc,MAAD,CAAKt0C,MAAM,sBAAsBS,GAAQqJ,MAE1D,MAAD,CAAK9J,MAAM,wBACTuM,GAAD,CAAKtM,KAAK,SAASC,MAAOya,EAAO,UAAWpa,QAjD3B,QACVwB,eAAe,aACV,KACLu+B,EAAW,QA+CjBrD,GAAD,CAASh9B,KAAK,UAAUC,MAAOya,EAAO,WAAYxO,UAAU,KAC1DqpC,GAAD,CAAYjkC,kBAAmBoJ,EAAO,UAAWnJ,UAAWmJ,EAAO,cAAetJ,OAAQujC,EAAStjC,SArFlF7R,OACXsC,eAAe,cAAetC,MACzB,CAAE+B,QAAAA,EAAS8e,OAAQ7gB,UAqF9Bw9B,GAAD,CAASh9B,KAAK,MAAMC,MAAOsB,EAASnB,QAASsa,EAAO,kBAAmB6nB,UAAQ,oBAC7E2Q,EAAgBza,UAAU3zB,UACzBwH,GAAD,CAAKrM,MAAOgR,EAAG/Q,OAAQ+Q,IAAM1P,EAASjB,QAAS,IAAMie,EAActN,UAGpE+rB,GAAD,CAASh9B,KAAK,mBAAmBI,QAASsa,EAAO,WAC/CpO,GAAD,CAAKtM,KAAK,UAAUC,MAAOya,EAAO,SAAUpa,QAlJnC,QACHwB,eAAe,oBAClBw2B,MAAM1X,YAAUugB,UAAUj+B,EAAMoY,OAAOzG,YAAY,QAiJrDvI,GAAD,CAAKtM,KAAK,aAAaC,MAAOya,EAAO,QAASpa,QA/IrC8F,MACXiC,qBACQvG,eAAe,OAAQ,mBAC1B2yC,YA6IFnoC,GAAD,CAAKtM,KAAK,cAAcC,MAAOya,EAAO,QAASpa,QA3ItC8F,MACXiC,qBACQvG,eAAe,OAAQ,mBAC1B4yC,aA4IL/kC,KAAUmjC,GAAD,CAAYnjC,MAAAA,EAAcC,UAAW,IAAMgjC,EAAS,UAC7D4C,GAADjpC,OAAU,CAACrJ,MAAAA,EAAO3B,QAAAA,EAASwV,YAAAA,IAA3B,CAAyCwpB,QAASqS,QAElD,MAAD,CAAK7yC,MAAM,gBAAgB+iC,MAAO,cAAc,EAAmB,GAAfwS,WAClD,MAAD,CAAKv1C,MAAO,8BAA8Bs1C,GAAa,SAAW,uBAAwB90C,aAAYma,EAAOy6B,EAAe,eAAiB,gBAAiB70C,QA/C1I,QACXwB,eAAe,iBAAmBqzC,EAA2B,SAAZ,eAC1CA,IACZA,GAAgBN,MACL,KA4CbM,EAAe30C,GAAQkP,SAAWlP,GAAQiO,QAE3C,MAAD,CAAK1O,MAAO,+BAA+B80C,EAAc,SAAW,uBAAwBt0C,aAAYma,EAAO,YAAapa,QA5EvG,QACZwB,eAAe,cACbs+B,EAAa,KA2EtB5/B,GAAQiN,YAET,MAAD,CAAK1N,MAAO,2BAA2B80C,EAAc,SAAW,KAAK5F,EAAa,UAAY,uBAAwB1uC,aAAYma,EAAOu0B,EAAa,SAAW,QAAS3uC,QAnFzJ,QACRwB,eAAe,UACjBq+B,EAAS,KAkFd8O,EAAazuC,GAAQwM,MAAQxM,GAAQ4M,UAEtC,MAAD,CAAKrN,MAAO,mDAAoDQ,aAAYma,EAAOm6B,EAAc,cAAgB,eAAgBv0C,QAzE9G,QACVwB,eAAe,gBAAkB+yC,EAA0B,SAAZ,cACzCA,KACR,KACI,KACF,KAqEPA,EAAcr0C,GAAQ0M,cAAgB1M,GAAQ6M,SAGhD,MAAD,CAAKtN,MAAO,iBAAgBo1C,EAAe,SAAW,OACpDM,GAADlpC,OAAkB,CAACrJ,MAAAA,EAAO3B,QAAAA,EAAS/B,GAAI2d,EAAI3d,KAA3C,CAAgDy7B,MAAOka,EAAc5U,QAASqS,QAE9E,MAAD,CAAK7yC,MAAO,gBAAe80C,EAAc,SAAW,OAClDa,GAADnpC,OAAiB,CAACrJ,MAAAA,EAAO6T,YAAAA,EAAaopB,OAAAA,EAAQC,WAAAA,EAAYC,SAAAA,IAA1D,CAAqE/vB,KAAM,WAAIgL,UAAU,OAAQglB,YAAAA,EAA0BC,QAASqS,6BCjShIl4B,OAAEA,GAAWwD,eACVxD,EAAO,iBACR,OAAD,OACL,MAAD,CAAK3a,MAAM,UACT4yC,GAAD,CAAU50B,MAAM,cACdvZ,GAAOC,WAAWmN,YAAajN,EAAE/D,WAAUkE,UAC1C6tC,GAAD,CAAU50B,MAAOrD,EAAO/V,EAAEnF,IAAK6O,KAAMjK,GAASO,EAAEZ,WAEhD4uC,GAAD,CAAU50B,MAAOrD,EAAO,YAAarM,KAAK,kBAE1CskC,GAAD,CAAU50B,MAAM,kBACdvZ,GAAOC,WAAWmN,WAA2B,WAAfjN,EAAE/D,WAAuBkE,UACtD6tC,GAAD,CAAU50B,MAAOrD,EAAO/V,EAAEnF,IAAK6O,KAAMjK,GAASO,EAAEZ,YAGjD4uC,GAAD,CAAU50B,MAAM,mBAAmB/d,KAAK,SACvCqO,KAAK,mCACLghC,KAAK,uCACLsD,GAAD,CAAU50B,MAAM,mBAAmB/d,KAAK,SACvCqO,KAAK,WACLghC,KAAK,oDACLsD,GAAD,CAAU50B,MAAM,qBACf1P,KAAK,qCACLghC,KAAK,wDACLsD,GAAD,CAAU50B,MAAM,sBAAsB1P,KAAK,kBAC1CskC,GAAD,CAAU50B,MAAM,qBAAqB1P,KAAK,iBACzCyjC,GAAD,8BC3BIp3B,OAAEA,GAAWwD,MACbjC,QAAEA,WAASI,GAAa02B,QACrBr4B,EAAO,gBAAiBuB,EAAQ3L,aACnChL,EAAU8K,GAAQ,IAAM6L,EAAQF,MAAMjX,IAAI6wC,KAAc15B,EAAQF,gBAO9D,OAAD,OACL82B,GAAD,CAAIrzC,GAAG,oBAAoBD,KAAK,WAC/B,MAAD,CAAKQ,MAAM,aACT,KAAD,KAAKkc,EAAQ3L,QACZ,MAAD,CAAKvQ,MAAM,eACT8vC,GAAD,CAAUvqC,QAAAA,EAAkB+L,SAVXqB,WACVoJ,EAAWvc,KAASC,GAAMkT,EAAM7N,MAAM,OACtCtF,EAAM,GAAGuc,KAAatc,iCCH1Bkb,OAAEA,GAAWwD,MACb3c,QAAEA,gBAASgd,GAAkBmuB,MAC5B/8B,EAAOijC,GAAYjqC,EAAuB,SACxC+R,EAAO,uBAET2yB,EAAQuI,GAAajtC,EAAsB,IAC5CktC,EAAYhvC,OAAOrD,WAAK6pC,IAAU,OAC9B,qB3C+FuBv4B,SAC3BvT,EAAUiD,GAAOwQ,SAAStQ,SAAUuM,EAAEzR,KAAOsV,UAC7CoC,GAAc3V,aAEbwC,EAAM,GAAG2Q,GAAOnT,EAAS,+CAClBkT,GAAQ1Q,SACbqC,SACF,IAAIC,MAAM,4CAA4C9E,MAAY+E,GAAQF,S2CrGpE7E,GACV0X,KAAK28B,GACLxE,mBAAqBzhC,MAAMvJ,KAAaA,QACxC,CAAC7E,UAEGkE,EAAQ+L,GAAa7I,EAAS,KAC9BmtC,EAASC,GAAcptC,EAAwB,IAChDqtC,EAAY,OACN,CAAC,CAAEx2C,GAAI4I,KAASqlC,MAAOhoC,EAAQioC,MAAO,EAAGC,MAAO,EAAGC,OAAQ,MAAQkI,KAKzEG,EAAgBz2C,GAAe,OACzBs2C,EAAQlkC,WAAY5L,EAAExG,KAAOA,OAGlCuuC,EAAamI,GAAkBvtC,EAAS,GAKzC8E,EAAWzF,EAA0B,eAYnC,OAAD,KACL2H,KAAUmjC,GAAD,CAAYnjC,MAAAA,EAAcC,UAAW,IAAMgjC,EAAS,QAC7DiD,EAAUzzC,OAAS,cAClB,MAAD,CAAKrC,MAAM,8BACT,MAAD,CAAKA,MAAM,wBACTgR,GAAD,CAAWhR,MAAM,6BAA6BuI,KAAK,aAAab,YAAaiT,EAAO,iBACnF3Z,MAAO0E,EAAQkC,SAAU6J,EAAWX,QAASmlC,MAC7C1pC,GAAD,CAAKtM,KAAK,OAAOI,QAASsa,EAAO,oBAAqB3a,MAAM,YAAYO,QAAS01C,KAEjFF,EAAQ1zC,OAAS,KAAMkK,GAAD,CAAKtM,KAAK,OAAOC,MAAQya,EAAO,mBAAoB3a,MAAM,kBAAkBO,QAzBtF,OACAytC,EAAc,QAyB1B,MAAD,CAAKhuC,MAAM,aACVuM,GAAD,CAAKtM,KAAK,WAAWC,MAAOya,EAAO,YAAata,QAASsa,EAAO,4BAA6B3a,MAAM,kBAAkBO,QAtB/F,WAClB61C,EAAWL,EAAQ54B,SAAUlX,EAAE0nC,MAAQ,IACvC76B,EAAUijC,EACdnF,MAAK,CAAC7qC,EAAGC,IAAMD,EAAE4nC,MAAQ3nC,EAAE2nC,QAC3B5oC,QAAS,GAAGqxC,EAAW,qCAAqCnwC,EAAE0nC,aAAe,yBAAyB1nC,EAAEynC,yBAAyBznC,EAAE4nC,UAAU5nC,EAAE2nC,UAC/IhrC,KAAK,QACEsF,QAAQ2V,aAAa,OAAQ,iCAAmC/K,EAAU,SAC1E5K,QAAQ2V,aAAa,WAAY,uBACjC3V,QAAQq6B,aAedtF,GAAD,CAASh9B,KAAK,MAAMC,MAAOsB,GACzBiD,GAAOwQ,SAASyjB,UAAU3zB,UACzBwH,GAAD,CAAKrM,MAAOgR,EAAEzR,GAAIU,OAAQ+Q,EAAEzR,KAAO+B,EAASjB,QAAS,IAAMie,EAActN,EAAEzR,YAI7E,MAAD,CAAKO,MAAM,UACT+1C,EAAQhxC,kBAAUsxC,GAAD7pC,OAAahH,IAAKS,EAAExG,IAAQwG,GAAO,CAAEqnC,OAAAA,EAAQU,YAAAA,IAA7C,CAA4DF,QA3C7DruC,EA2CgFwG,EAAExG,GA3ClE6wC,MACxByF,EAAQhxC,QAASkB,EAAExG,KAAOA,EAAK6M,OAAKrG,GAAMqqC,GAAYrqC,OA0CyC8nC,SAAUmI,EAAajwC,EAAExG,OA3CjH,IAACA,QA6CjB,IAAD,CAAGuI,IAAK0F,EAAUq1B,MAAM,sBAExB,WAAD,CAAUtjC,GAAG,cACXq2C,EAAU/wC,UAAU,SAAD,CAAQS,IAAK7B,EAAG3C,MAAO2C,8BClEvCgX,OAAEA,GAAWwD,MACZvO,EAAOijC,GAAYjqC,EAAuB,SACxC+R,EAAO,yBAET1F,EAAUqhC,GAAe1tC,EAAwB,OAC9C,6B5CgIJpH,EAAUiD,GAAOwQ,SAASxQ,GAAOwQ,SAAS5S,OAAS,SACnD8U,GAAc3V,cAEZkT,GAAQ,GAAGC,GAAOnT,EAAS,2CAC1B6E,SACF,IAAIC,MAAM,0CAA0CC,GAAQF,W4CnIhE6S,SAAiBo9B,EAAYC,KAC7BlF,mBAAqBzhC,MAAMvJ,KAAaA,QACxC,UAEGmwC,EAAalxC,GAAgBF,KAAiB9B,IAAI,MAClDmzC,EAAWxhC,EAAStQ,SAAUuM,EAAEzR,KAAO+2C,OAEpCC,EAAWA,EAASlmC,KAAO,oBAAqBkmC,EAAW,QAAK,SAEnEC,EAAcD,GAAYE,GAAiB1hC,EAAUwhC,MACrDG,EAAkBH,GAAYE,GAAiB1hC,EAAUwhC,EAAU,YAEjE,OAAD,OACL3D,GAAD,CAAItzC,KAAK,OAAOC,GAAG,aAClBmQ,KAAUmjC,GAAD,CAAYnjC,MAAAA,EAAcC,UAAW,IAAMgjC,EAAS,UAC7D,MAAD,CAAK7yC,MAAM,YACTy2C,aACC,MAAD,CAAKz2C,MAAM,wBACT,IAAD,CAAGA,MAAM,eAAewQ,KAAK,cAC3B/P,GAAQ8O,WACRoL,EAAO,mBAER,IAADrO,GAAGtM,MAAM,gBAAmB42C,EAAkB,CAACpmC,KAAM,iBAAiBomC,EAAgBn3C,MAAQ,CAAC+mC,UAAU,IACvG/lC,GAAQsM,WACR4N,EAAO,wBAER,IAADrO,GAAGtM,MAAM,gBAAmB02C,EAAc,CAAClmC,KAAM,iBAAiBkmC,EAAYj3C,MAAQ,CAAC+mC,UAAU,IAC/F7rB,EAAO,iBACPla,GAAQuM,gBAGV6pC,GAAD,CAAer1C,QAASi1C,OAClBK,GAAD,CAAa7hC,SAAAA,EAAoB3G,QAAY,iBAAiB7O,QAKvE,YAA0BwV,EAAyB/M,EAAsBiX,SAElE43B,EADe9hC,EAAS0C,cAAezG,EAAEzR,KAAOyI,EAAQzI,KAC3B0f,OAC/B43B,EAAc,GAAKA,GAAe9hC,EAAS5S,eAGxC4S,EAAS8hC,mCC9CdC,GAAD,QACCC,GAAD,CAAQrvC,SAPYvB,gBAET,IAAM9G,GAAU0B,SAASoD,GAASgC,EAAErC,YAM7CkzC,GAAD,CAAM75B,KAAK,QACV85B,GAAD,CAAU95B,KAAK,YAAYxc,SAAS,eACnCs2C,GAAD,CAAU95B,KAAK,UAAUxc,SAAS,aACjCu2C,GAAD,CAAQ/5B,KAAK,cACZg6B,GAAD,CAAWh6B,KAAK,iBACf1H,GAAD,CAAU0H,KAAK,gBACdpB,GAAD,CAASoB,KAAK,eACbi6B,GAAD,CAAWxiC,SAAO,MCnBrB,uBACSyiC,GAAD,OACLC,GAAD,OACEC,GAAD,OACEC,GAAD,OACEC,GAAD,OACEC,GAAD,WAQNC,KAAQC,GAAD,MAAU3/B,SAASxN"} \ No newline at end of file diff --git a/assets/index.dc4f43f8.js b/assets/index.dc4f43f8.js deleted file mode 100644 index 6e164e83..00000000 --- a/assets/index.dc4f43f8.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,s=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,i=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&s(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&s(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,r as u,l as h,g as m,b as p,s as f,c as v,d as g,e as w,f as _,j as y,h as b,i as x,k,m as C,q as M,A,F as I,n as z,o as j,p as E,C as $,t as O,I as S,u as L,v as P,w as D,x as V,_ as N,X as T,z as B,B as H,D as R,E as F,G,H as J,J as W,K as U,L as Y,M as q,N as Z,O as X,P as K,Z as Q,Q as ee,R as te,S as ne,T as oe,U as re,V as ae,W as se,Y as ie,$ as le,a0 as ce,a1 as de}from"./vendor.ae3ccf68.js";var ue;function he({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function me({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:s}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:s,"aria-label":r},e&&Re[e],t&&d("span",null,t))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.setPrefersColorScheme=function(e){r(7,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(ue||(ue={}));var pe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Español"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","ref":"1.18.1"},{"id":"1.18.2","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/density_function","url":"worldgen/density-function","category":"worldgen","schema":"density_function","minVersion":"1.18.2"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_set","url":"worldgen/structure-set","category":"worldgen","schema":"structure_set","minVersion":"1.18.2"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function fe(e){return"object"==typeof e&&null!==e}const ve=e=>("0"+e.toString(16)).substr(-2);function ge(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,ve).join("")}function we(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function _e(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new h.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new h.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function ye(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function be(e){return`/${e}/`.replaceAll("//","/")}function xe(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),be(e)}function ke(e){const t=xe(e).replace(/^\//,"").replace(/\/$/,"");return pe.generators.find((e=>e.url===t))}function Ce(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function Me(e,t){const n=m(),o=Ce(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));p(`${t?be(t):xe(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function Ae(e){const t=Math.abs(ye(e));return[t%256,(t>>8)%256,(t>>16)%256]}function Ie(e){return e*e}function ze(e,t,n){return Math.max(e,Math.min(t,n))}function je(e,t,n){return n<0?e:n>1?t:Ee(n,e,t)}function Ee(e,t,n){return t+e*(n-t)}function $e(e){return e instanceof Error?e.message:`${e}`}const Oe=u();function Se(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;o<n;o++)if(!Se(e[o],t[o]))return!1;return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!=o--;){const n=r[o];if(!Se(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}class Le{constructor(){this.forward=new Map,this.backward=new Map}set(e,t){this.forward.set(e,t),this.backward.set(t,e)}getA(e){return this.backward.get(e)}getB(e){return this.forward.get(e)}getOrPut(e,t){const n=this.forward.get(e);return void 0===n?(this.set(e,t),t):n}}function Pe({icon:e,label:t,large:n,larger:o,doSelect:r,value:a,placeholder:s,dataList:i,onChange:l}){const u=void 0===l?()=>{}:e=>{const t=e.target.value;null==l||l(t)},h=f(null);c((()=>{r&&h.current&&h.current.select()}),[r]);const m=i&&ge();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Re[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:s,list:m}),i&&d("datalist",{id:m},i.map((e=>d("option",{value:e})))))}function De({cooldown:e,invert:t,initial:n}={}){const[o,r]=v(n),a=f(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function Ve({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const s=f(null),i=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{i.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===i.current){const t=e.offsetX/s.current.clientWidth,n=e.offsetY/s.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-i.current[0],r=e.offsetY-i.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],u.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{u.current=!0;const e=d.current[0]/s.current.clientWidth,t=d.current[1]/s.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),i.current=[e.offsetX,e.offsetY]},a=()=>{i.current=void 0},c=()=>{null==r||r()};return s.current.addEventListener("mousedown",e),s.current.addEventListener("mousemove",t),s.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=s.current)||n.removeEventListener("mousedown",e),null==(o=s.current)||o.removeEventListener("mousemove",t),null==(r=s.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],s.current]);const h=f(),m=f(0);return h.current=async()=>{const n=s.current.getContext("2d"),o=e();s.current.width=o[0],s.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;try{await t(r)}catch(i){throw i}a===m.current&&n.putImageData(r,0,0)},{canvas:s,redraw:h.current}}function Ne(){const[e,t]=v(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function Te(e){const[t,n]=v(matchMedia(e).matches),o=e=>{n(e.matches)};return c((()=>{const t=matchMedia(e);return t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}}),[e]),t}function Be(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function He(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:s}=e,[c,u]=Ne();return d("div",i({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(me,l(i({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},s))}const Re={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),square:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})),square_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function Fe({error:e,onDismiss:t}){const[n,o]=v(!1),[r,a]=v(void 0);c((()=>{if(e instanceof Error){const t=e.stack.split("\n").map((e=>e.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)")));a(t.join("\n")),g.exports.mapStackTrace(t.join("\n"),(e=>{const t=e.map((e=>e.replace(/..\/..\/src\//,"src/"))).join("\n");a(t)}))}}),[e]);const s=w((()=>{let t="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(t+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,r&&(t+=`&body=${encodeURIComponent(`\`\`\`\n${e.name}: ${e.message}\n${r}\n\`\`\`\n`)}`)):t+=`?title=${encodeURIComponent(e.toString())}`,t}),[e,r]);return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Re.x),d("h3",null,e instanceof Error?e.message:e,r&&d("span",{onClick:()=>o(!n)},Re.info)),r&&n&&d("pre",null,r),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:s,target:"_blank"},"on GitHub")))}function Ge({label:e,value:t,onChange:n}){const o=ge();return d("label",{class:"checkbox"},d("input",{id:o,type:"checkbox",checked:t,onClick:()=>n(!t)}),e)}function Je(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",i(i({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const We=Je("TextInput","text",(e=>e)),Ue=Je("NumberInput","number",(e=>Number(e))),Ye=Je("RangeInput","range",(e=>Number(e)));function qe({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=v(""),s=w((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(_,null,d(Pe,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},s.map((e=>d(me,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===s.length&&d(me,{label:null!=o?o:"No results"})))}const Ze="https://raw.githubusercontent.com/misode/technical-changes/main";let Xe=null;async function Ke(){if(!Xe){const e=await(await fetch(`${Ze}/index.json`)).json();Xe=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Ze}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${Ze}/${e.id}/${t.id}.md`)).text()).map((r=>i({version:t,group:e,order:1e3*n+o},r)))}(e,Qe(n),t,o))))).flat()}(Qe(e),t))))).flat().map((e=>l(i({},e),{tags:[e.group.id,...e.tags]})))}return Xe}function Qe(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:fe(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const et="https://raw.githubusercontent.com/misode/mcmeta";function tt(e,t){return`${et}/${e.dynamic?t:`${e.ref}-${t}`}`}async function nt(e){e.dynamic&&("1.18.2"!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${$e(t)}`)}}((e=>e.startsWith(`${et}/summary/`)||e.startsWith(`${et}/data/`))),localStorage.setItem("cached_latest_version","1.18.2")),e.ref="1.18.2")}async function ot(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await st(`${tt(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",$e(n))}}async function rt(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await st(`${tt(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",$e(n))}}async function at(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=pe.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${tt(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${$e(r)}`)}}async function st(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${$e(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const it=["1.15","1.16","1.17","1.18","1.18.2"],lt={},ct={},dt={1.15:y,1.16:b,1.17:x,1.18:k,"1.18.2":C};let ut,ht,mt,pt;async function ft(e){return lt[e]||(lt[e]=(async()=>{try{const t=dt[e].getCollections(),n={};await async function(e,t,n){const o=pe.versions.find((t=>t.id===e));o?(await nt(o),await Promise.all([ot(o,t),rt(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(pe.versions)}`)}(e,t,n);const o=dt[e].getSchemas(t);return lt[e]={collections:t,schemas:o,blockStates:n},lt[e]}catch(t){throw new Error(`Cannot get version "${e}": ${$e(t)}`)}})()),lt[e]}function vt(e,t,n){const o=pe.versions.findIndex((t=>t.id===e)),r=t?pe.versions.findIndex((e=>e.id===t)):0,a=n?pe.versions.findIndex((e=>e.id===n)):pe.versions.length-1;return r<=o&&o<=a}const gt={},wt=function(e,t){if(!t)return e();if(void 0===pt){const e=document.createElement("link").relList;pt=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in gt)return;gt[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":pt,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var _t,yt,bt=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","changelog.no_results":"No changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","highlighting":"Highlighting","loading":"Loading...","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","title.versions":"Versions Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),xt=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:bt});(yt=_t||(_t={})).ID_LANGUAGE="language",yt.ID_THEME="theme",yt.ID_VERSION="schema_version",yt.ID_INDENT="indentation",yt.ID_FORMAT="output_format",yt.ID_HIGHLIGHTING="output_highlighting",yt.ID_SOUNDS_VERSION="minecraft_sounds_version",yt.ID_PROJECTS="misode_projects",yt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(yt.ID_LANGUAGE))?e:"en"},yt.getTheme=function(){var e;return null!=(e=localStorage.getItem(yt.ID_THEME))?e:"dark"},yt.getVersion=function(){const e=localStorage.getItem(yt.ID_VERSION);return e&&it.includes(e)?e:"1.18.2"},yt.getIndent=function(){var e;return null!=(e=localStorage.getItem(yt.ID_INDENT))?e:"2_spaces"},yt.getFormat=function(){var e;return null!=(e=localStorage.getItem(yt.ID_FORMAT))?e:"json"},yt.getHighlighting=function(){return"false"!==localStorage.getItem(yt.ID_HIGHLIGHTING)},yt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(yt.ID_SOUNDS_VERSION))?e:"latest"},yt.getProjects=function(){const e=localStorage.getItem(yt.ID_PROJECTS);return e?JSON.parse(e):[jt]},yt.setLanguage=function(e){e&&localStorage.setItem(yt.ID_LANGUAGE,e)},yt.setTheme=function(e){e&&localStorage.setItem(yt.ID_THEME,e)},yt.setVersion=function(e){e&&localStorage.setItem(yt.ID_VERSION,e)},yt.setIndent=function(e){e&&localStorage.setItem(yt.ID_INDENT,e)},yt.setFormat=function(e){e&&localStorage.setItem(yt.ID_FORMAT,e)},yt.setHighlighting=function(e){void 0!==e&&localStorage.setItem(yt.ID_HIGHLIGHTING,e.toString())},yt.setSoundsVersion=function(e){e&&localStorage.setItem(yt.ID_SOUNDS_VERSION,e)},yt.setProjects=function(e){e&&localStorage.setItem(yt.ID_PROJECTS,JSON.stringify(e))};const kt=M({lang:"none",locale:e=>e,changeLanguage:()=>{}}),Ct={fallback:bt};function Mt(e,t,...n){var o,r,a,s,i;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(i=null!=(s=null!=(a=null==(o=Ct[e])?void 0:o[t])?a:null==(r=Ct.en)?void 0:r[t])?s:Ct.fallback[t])?i:t,n)}async function At(e){if(Ct[e])return;const t=pe.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return wt((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return wt((()=>Promise.resolve().then((function(){return xt}))),void 0);case"../../locales/es.json":return wt((()=>import("./es.833a9774.js")),void 0);case"../../locales/fr.json":return wt((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return wt((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return wt((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return wt((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return wt((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return wt((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return wt((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return wt((()=>import("./zh-cn.a421074a.js")),void 0);case"../../locales/zh-tw.json":return wt((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return wt((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return wt((()=>import("./de.6c6a67f3.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return wt((()=>import("./en.a3c526c1.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return wt((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return wt((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return wt((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return wt((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return wt((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return wt((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return wt((()=>import("./ru.cc3bc989.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return wt((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return wt((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return wt((()=>import("./zh-tw.bdc36a24.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);Ct[e]=i(i({},n.default),o.default)}function It(){return I(kt)}function zt({children:e}){const[t,n]=v("none"),o=A(((e,...n)=>Mt(t,e,...n)),[t]),r=A((async e=>{await At(e),ue.setLanguage(e),_t.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=_t.getLanguage();await Promise.all([At("en"),..."en"!==e?[At(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(kt.Provider,{value:a},e)}const jt={name:"Drafts",namespace:"draft",files:[]},Et=M({project:jt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function $t(){return I(Et)}function Ot({children:e}){const[t,n]=v(_t.getProjects()),[o,r]=v(jt.name),a=w((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:jt}),[t,o]),[s,c]=v(void 0),u=w((()=>{if(s)return a.files.find((e=>e.type===s[0]&&e.id===s[1]))}),[a,s]),h=A((e=>{_t.setProjects(e),n(e)}),[]),m=A((e=>{h(t.map((t=>t.name===o?i(i({},t),e):t)))}),[t,o]),f=A(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,s=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&s)return!1;m({files:a.files.map((o=>o.type===e&&o.id===t?l(i(i({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(s)return!1;m({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else m({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[m,a,u]),g=A(((e,t)=>{const n=pe.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),p(be(n.url))}),[]),_=A((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:m,updateFile:f,openFile:g,closeFile:_};return d(Et.Provider,{value:y},e)}function St(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=pe.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const Lt=M({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function Pt(){return I(Lt)}function Dt({children:e}){const[t,n]=v(_t.getTheme()),o=Te("(prefers-color-scheme: light)"),r=Te("(prefers-color-scheme: dark)");c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const a=A((e=>{ue.setTheme(e),_t.setTheme(e),n(e)}),[]);c((()=>{ue.setPrefersColorScheme(o?"light":r?"dark":"none")}),[o,r]);const s={theme:t,actualTheme:"light"===t||"dark"!==t&&o?"light":"dark",changeTheme:a};return d(Lt.Provider,{value:s},e)}const Vt=M({title:"",changeTitle:()=>{}});function Nt(e,t){const n=I(Vt);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function Tt({children:e}){const{locale:t}=It(),[n,o]=v(t("title.home")),r={title:n,changeTitle:A(((e,t)=>{null!=t||(t=pe.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(Vt.Provider,{value:r},e)}const Bt=M({version:"1.18.2",changeVersion:()=>{}});function Ht(){return I(Bt)}function Rt({children:e}){const[t,n]=v(_t.getVersion()),o=Ce(m()).get("version");c((()=>{it.includes(o)&&t!==o&&n(o)}),[t,o]);const r=A((e=>{Ce(m()).has("version")&&Me({version:e}),ue.setVersion(e),_t.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(Bt.Provider,{value:a},e)}let Ft=!1;const Gt={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Jt,Wt;async function Ut(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];return Se(n,Jt)||(Jt=Oe(n),Wt=await async function(e,t){var n,o,r,a,s;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new P($.parse(e.biome));case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,i=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const s=(((t>>n)+(r>>n))%i+i)%i;return $.parse(null==(a=e.biomes)?void 0:a[s].node)}};case"multi_noise":switch(null==(s=e.preset)?void 0:s.replace(/^minecraft:/,"")){case"nether":e=vt(t.version,"1.18")?Xt:Zt;break;case"overworld":e=vt(t.version,"1.18")?await async function(){return(await at("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),vt(t.version,"1.18")){await async function(){Ft||(await D(V),Ft=!0,console.debug(`Loaded deepslate-rs from "${V}"`))}();const n=new Le,o=e=>"number"==typeof e?[e,e]:e,[r,a,s,i,l,c,d,u,h,m,p,f,v,g]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:w,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),s.push(o(w)[0]),i.push(o(w)[1]),l.push(o(_)[0]),c.push(o(_)[1]),d.push(o(y)[0]),u.push(o(y)[1]),h.push(o(b)[0]),m.push(o(b)[1]),p.push(o(x)[0]),f.push(o(x)[1]),v.push(k),g.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const w=z(new Float64Array(r),new Float64Array(a),new Float64Array(s),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(m),new Float64Array(p),new Float64Array(f),new Float64Array(v),new Int32Array(g)),_=j(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=E(w,_,e,e+1,1,t,t+1,1,o,o+1,1);return $.parse(null!=(r=n.getA(a[0]))?r:"unknown")},getBiomes:(e,t,o,r,a,s,i,l,c)=>[...E(w,_,e,t,o,r,a,s,i,l,c)].map((e=>{var t;return $.parse(null!=(t=n.getA(e))?t:"unknown")})),getClimate(e,t,n){const o=O(_,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,s,i,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:s,erosion:i,weirdness:l}},getClimates(e,t,n,o,r,a,s,i,l){const c=O(_,e,t,n,o,r,a,s,i,l),d=[];for(let u=0;u<c.length;u+=7){const[e,t,n,o,r]=c.slice(u,u+5);d.push({temperature:e,humidity:t,continentalness:n,erosion:o,weirdness:r})}return d}}}{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=ze(null!=(r=a.firstOctave)?r:-7,-100,-1),new S(new L(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let s=1/0,i="";for(const{biome:n,parameters:l}of e.biomes){const e=Ie(l.altitude-a[0])+Ie(l.temperature-a[1])+Ie(l.humidity-a[2])+Ie(l.weirdness-a[3])+Ie(l.offset);e<s&&(s=e,i=n)}return $.parse(i)}}:new P($.create("unknown"))}}throw new Error("Unknown biome source")}(e,t)),{biomeSource:Wt}}function Yt(e,t){var n;if(!e)return[128,128,128];const o=null!=(n=t[e])?n:qt[e];return void 0===o?Ae(e):o}const qt={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[128,128,255],"minecraft:end_highlands":[128,128,255],"minecraft:end_midlands":[128,128,255],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[128,128,255],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[128,128,255],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0]},Zt={type:"minecraft:multi_noise",seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:"minecraft:nether_wastes",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{altitude:0,temperature:0,humidity:-.5,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{altitude:0,temperature:.4,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{altitude:0,temperature:0,humidity:.5,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{altitude:0,temperature:-.5,humidity:0,weirdness:0,offset:.175}}]},Xt={type:"minecraft:multi_noise",biomes:[{biome:"minecraft:nether_wastes",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{temperature:0,humidity:-.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{temperature:.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{temperature:0,humidity:.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{temperature:-.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.175}}]};const Kt=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],Qt=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function en(e,t,n){const o=new L(n.seed),r={placements:[],features:[],random:o,biomeInfoNoise:new N(o.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>o.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(tn(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return ze(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(ze(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let s=0;s<n.size[0]/16;s+=1)for(let t=0;t<n.size[2]/16;t+=1)vt(n.version,void 0,"1.17")?an([16*s,0,16*t],h.DataModel.unwrapLists(e),r):dn([16*s,0,16*t],h.DataModel.unwrapLists(e.placement),r);const a=t.data;t.data.fill(255);for(const[s,i]of r.placements){if(s[0]<0||s[1]<0||s[2]<0||s[0]>=n.size[0]||s[1]>=n.size[1]||s[2]>=n.size[2])continue;const e=s[2]*(4*t.width)+4*s[0],o=i<Qt.length?Qt[i]:Ae(r.features[i]);a[e]=ze(50,205,o[0]),a[e+1]=ze(50,205,o[1]),a[e+2]=ze(50,205,o[2]),a[e+3]=255}for(let s=0;s<n.size[0];s+=1)for(let e=0;e<n.size[2];e+=1){if((Math.floor(s/16)+Math.floor(e/16))%2==0)continue;const n=e*(4*t.width)+4*s;for(let e=0;e<3;e+=1)a[n+e]=.85*a[n+e]}}function tn(e){return e.startsWith("minecraft:")?e.slice(10):e}function nn(e,t){return[[e[0],t,e[2]]]}function on(e,t){if(!fe(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function rn(e,t){const n=t.features.indexOf(e);return-1!=n?n:(t.features.push(e),t.features.length-1)}function an(e,t,n){var o;if("string"==typeof t)return void n.placements.push([e,rn(t,n)]);const r=tn(null!=(o=null==t?void 0:t.type)?o:"no_op"),a=ln[r];a?a(t.config,e,n):n.placements.push([e,rn(JSON.stringify(t),n)])}function sn(e,t,n){var o;const r=tn(null!=(o=null==t?void 0:t.type)?o:"nope"),a=cn[r];return a?a(null==t?void 0:t.config,e,n):[e]}const ln={decorated:(e,t,n)=>{sn(t,null==e?void 0:e.decorator,n).forEach((t=>an(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{an(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void an(t,a.feature,n);an(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;an(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},cn={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat()<e.extra_chance&&(a+=null!=(r=e.extra_count)?r:0),new Array(a).fill(t)},count_multilayer:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200)<e.noise_level?e.below_noise:e.above_noise;return new Array(o).fill(t)},count_noise_biased:(e,t,n)=>{var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),s=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(s).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,Kt[ze(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>sn(t,null==e?void 0:e.outer,n).flatMap((t=>sn(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,s;return nn(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(s=null==e?void 0:e.baseline)?s:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>nn(t,Math.max(n.seaLevel,Kt[ze(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Kt[ze(0,63,t[0])]);return nn(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>nn(t,Math.max(n.seaLevel,Kt[ze(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o<n.seaLevel||0==n.nextInt((null!=(r=null==e?void 0:e.chance)?r:1)/8)){return[[n.nextInt(16)+t[0],o,n.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t,n)=>{var o,r,a;return nn(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return nn(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,s;return nn(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(s=null==e?void 0:e.bottom_offset)?s:0)))},spread_32_above:(e,t,n)=>nn(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>nn(t,Kt[ze(0,63,t[0])]),magma:(e,t,n)=>nn(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=Kt[ze(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),s=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]<a||t[1]>s?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function dn(e,t,n){var o;let r=[e];for(const a of t){un[tn(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>un[tn(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const un={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>nn(t,function(e,t){var n,o,r,a;if(!fe(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return on(e);switch(tn(e.type)){case"constant":return on(e.value);case"uniform":{const n=on(e.min_inclusive),o=on(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=on(e.min_inclusive),a=on(e.max_inclusive),s=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(s+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=on(e.min_inclusive),o=on(e.max_inclusive),a=null!=(r=e.inner)?r:1,s=n+a+t.nextInt(o-n-a+1),i=n+t.nextInt(s-n);return n+t.nextInt(i-n+a)}case"trapezoid":{const n=on(e.min_inclusive),o=on(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const s=(o-n-r)/2,i=o-n-s;return n+t.nextInt(i+1)+t.nextInt(s+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>nn(e,Math.max(t.seaLevel,Kt[ze(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),s=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),i=Math.max(0,Math.ceil((s+(null!=n?n:0))*e));return new Array(i).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a<e?t:n).fill(o)},random_offset:({xz_spread:e,y_spread:t},n,o)=>[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class hn{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new L(e);this.minLimitPerlinNoise=new N(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new N(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new N(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new N(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(s=n,i=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],Ee(i,Ee(s,l,c),Ee(s,d,u)))}var s,i,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,s=r/this.settings.sampling.y_factor,i=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,s);const c=((1-2*l/this.chunkCountY+i)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=je(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=je(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,s){let i=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=N.wrap(e*o*d),m=N.wrap(t*r*d),p=N.wrap(n*o*d),f=r*d,v=this.minLimitPerlinNoise.getOctaveNoise(u);v&&(i+=v.sample(h,m,p,f,t*f)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(h,m,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(N.wrap(e*a*d),N.wrap(t*s*d),N.wrap(n*a*d),s*d,t*s*d)/d)}d/=2}return je(i/512,l/512,(c/10+1)/2)}}const mn={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let pn,fn,vn=[];const gn=new Map;async function wn(e,t,n){var o,r,a;if(vt(n.version,"1.18")){vt(n.version,"1.18.2")&&await bn(n.version);const{settings:r,generator:a}=function(e,t){const n=Y.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!Se(o,pn))if(pn=Oe(o),vn=[],vt(t.version,"1.18.2")){const e=new P($.create("unknown"));fn=new q(t.seed,e,n)}else{const e=new Q("unknown");fn=new Z(t.seed,e,n)}return{settings:n,generator:fn}}(e,n),s=new kn(-n.offset,n.width,r.noise.minY,r.noise.height);s.generate(a,n.biome);const i=t.data;for(let e=0;e<n.width;e+=1)for(let a=0;a<r.noise.height;a+=1){const l=4*e+4*(r.noise.height-a-1)*t.width,c=s.getBlockState([e-n.offset,a+r.noise.minY,0]),d=null!=(o=mn[c.getName().toString()])?o:[0,0,0];i[l]=d[0],i[l+1]=d[1],i[l+2]=d[2],i[l+3]=255}return}const s=new hn(n.seed);s.reset(e.noise,null!=(r=n.biomeDepth)?r:0,null!=(a=n.biomeScale)?a:0,n.offset,n.width);const i=t.data,l=4*t.width;for(let c=0;c<n.width;c+=1){const t=s.iterateNoiseColumn(c-n.offset).reverse();for(let n=0;n<e.noise.height;n+=1){const e=n*l+4*c,o=xn(t,n);i[e]=o,i[e+1]=o,i[e+2]=o,i[e+3]=255}}}async function _n(e,t,n){const{fn:o,settings:r}=await async function(e,t){await bn(t.version);const n=F.create(t.seed).forkPositional(),o=G.fromJson({min_y:-64,height:384,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},bottom_slide:{target:.1171875,size:3,offset:0},top_slide:{target:-.078125,size:2,offset:8},terrain_shaper:{offset:.044,factor:4,jaggedness:0}}),r=H.fromJson(e);return{fn:r.mapAll(new J.Visitor(n,o)),settings:o}}(e,n),a=Array(n.width*r.height);let s=1/0,i=-1/0;for(let c=0;c<n.width;c+=1)for(let e=0;e<r.height;e+=1){const t=c+(r.height-e-1)*n.width,l=o.compute(H.context(c-n.offset,e,0));s=Math.min(s,l),i=Math.max(i,l),a[t]=l}const l=t.data;for(let c=0;c<n.width*r.height;c+=1){const e=Math.floor(R(a[c],s,i,0,256));l[4*c]=e,l[4*c+1]=e,l[4*c+2]=e,l[4*c+3]=255}}const yn=[["worldgen/noise",K],["worldgen/density_function",H]];async function bn(e){var t;const n=null!=(t=gn.get(e))?t:new W(new $("misode","temp"));gn.has(e)||(await Promise.all(yn.map((([t,o])=>async function(e,t,n,o){const r=await async function(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=pe.versions.find((t=>t.id===e));await nt(n);try{const e=await st(`${tt(n,"registries")}/${t}/data.min.json`);return new Map(await Promise.all(e.map((async e=>[e,await st(`${tt(n,"data")}/data/minecraft/${t}/${e}.json`)]))))}catch(o){throw new Error(`Error occurred while fetching all ${t} presets: ${$e(o)}`)}}(e,n),a=new W($.create(n));for(const[s,i]of r.entries())a.register($.parse(s),o.fromJson(i));t.register(a.key,a)}(e,n,t,o)))),gn.set(e,n)),U.DENSITY_FUNCTION.clear().assign(n.getOrThrow($.create("worldgen/density_function"))),U.NOISE.clear().assign(n.getOrThrow($.create("worldgen/noise")))}function xn(e,t){return e[t]>0?0:e[t+1]>0?150:255}class kn{constructor(e,t,n,o){this.minX=e,this.done=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,s=vn.find((e=>e.pos[0]===a));return s?(this.done[r]=!0,s):new X(n,o,T.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n,!0),e.buildSurface(n,t),this.done[o]=!0,vn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const Cn=["biomes","temperature","humidity","continentalness","erosion","weirdness"],Mn=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=It(),[s,l]=v(2),[u,m]=v(void 0),[p,g]=v(new Set(["biomes"])),y=f([0,0]),b=f(1),x=f(void 0),k=BigInt(e.get(new h.Path(["generator","seed"]))),C=w((()=>{if(n)return function(e){if("string"!=typeof e){e=Y.fromJson(h.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}(e.get(new h.Path(["generator","settings"])))}),[n]),M=n?function(e,t){return JSON.stringify([e,t])}(t,C):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:I,redraw:z}=Ve({size:()=>[200/b.current,200/b.current],async draw(e){const n={octaves:C,biomeColors:{},layers:p,offset:y.current,scale:s,seed:k,res:b.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:s}=await Ut(e,n),i=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],m=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=s.getBiomes)?void 0:o.call(s,...h,64,65,1,...m):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),v=0===f.length||null==(r=s.getClimates)?void 0:r.call(s,...h,64,65,1,...m);for(let g=0;g<200;g+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+g*u,o=g/n.res*200/n.res+e/n.res,r=(g+l)*n.scale,h=(e+c)*n.scale;let m=[50,50,50];if(n.layers.has("biomes"))m=Yt((null!=(a=null==p?void 0:p[o])?a:s.getBiome(r,64,h)).toString(),n.biomeColors);else if(v&&f[0]){const e=v[o][f[0]],[t,n]=Gt[f[0]],r=(e-t)/(n-t)*256;m=[r,r,r]}i[t]=m[0],i[t+1]=m[1],i[t+2]=m[2],i[t+3]=255}}(t,e,n),4===b.current&&(clearTimeout(x.current),x.current=setTimeout((()=>{b.current=1,z()}),150))},async onDrag(e,t){y.current[0]=y.current[0]+200*e,y.current[1]=y.current[1]+200*t,clearTimeout(x.current),b.current="multi_noise"===A?4:1,z()},async onHover(e,n){const r={octaves:C,biomeColors:{},layers:p,offset:y.current,scale:s,seed:k,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await Ut(e,o),[s,l]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return i({biome:a.getBiome(s,64,l).toString()},null==(r=a.getClimate)?void 0:r.call(a,s,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);m(a)},onLeave(){m(void 0)}},[M,s,k,p]);c((()=>{n&&(b.current="multi_noise"===A?4:1,z())}),[M,s,k,p,n]);const j=e=>{y.current[0]=y.current[0]*s/e,y.current[1]=y.current[1]*s/e,l(e)};return d(_,null,d("div",{class:"controls preview-controls"},u&&d(me,{label:u.biome,class:"no-pointer"}),"multi_noise"===A&&d(He,{icon:"stack",tooltip:a("configure_layers")},Cn.map((e=>{const t=p.has(e);return d(me,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{g(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(_,null,d(me,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>j(1.5*s)}),d(me,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>j(s/1.5)})),"multi_noise"===A&&d(me,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>_e(e)})),(null==u?void 0:u.temperature)&&d("div",{class:"controls secondary-controls"},d(me,{class:"no-pointer",label:Object.entries(u).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:I,width:"200",height:"200"}))};const An=({data:e,version:t,shown:n})=>{const{locale:o}=It(),[r,a]=v(4),[s,i]=v(we()),{canvas:l,redraw:u}=Ve({size:()=>[16*r,16*r],async draw(n){en(e,n,{seed:s,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,s,n]),d(_,null,d("div",{class:"controls preview-controls"},d(me,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(me,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(me,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>i(we())})),d("canvas",{ref:l,width:"64",height:"64"}))},In=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=It(),[s,i]=v(we()),[l,u]=v(!1),[h,m]=v(void 0),p=f(0),g=f(void 0),w=JSON.stringify([e]),y=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:b,redraw:x}=Ve({size:()=>[y,y],async draw(t){const o={offset:p.current,width:t.width,seed:s,version:n};await _n(e,t,o)},async onDrag(e){p.current+=e*y,x()},async onHover(t,n){var o,r;const a=Math.floor(t*y-p.current),s=y-Math.max(1,Math.ceil(n*y))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);m(`X=${a} Y=${s}`)},onLeave(){m(void 0)}},[w,s]);return c((()=>{g.current&&clearInterval(g.current),t&&(x(),l&&(g.current=setInterval((()=>{p.current-=8,x()}),100)))}),[w,s,t,l]),d(_,null,d("div",{class:"controls preview-controls"},h&&d(me,{label:h,class:"no-pointer"}),d(He,{icon:"gear",tooltip:a("terrain_settings")},d(me,{icon:l?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>u(!l)})),d(me,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(we())})),d("canvas",{ref:b,width:y,height:y}))},zn=({data:e,shown:t,version:n})=>{const{locale:o}=It(),[r,a]=v(we()),[s,i]=v(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:m,redraw:p}=Ve({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:s,seed:r,version:n};!function(e,t,n){const o=new L(n.seed),r=K.fromJson(h.DataModel.unwrapLists(e)),a=new S(o,r),s=-n.offset[0]-100,i=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+s)*n.scale,r=(e+i)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,p()}},[u,s,r]);c((()=>{t&&p()}),[u,s,r,t]);const g=e=>{l.current[0]=l.current[0]*s/e,l.current[1]=l.current[1]*s/e,i(e)};return d(_,null,d("div",{class:"controls preview-controls"},d(me,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>g(1.5*s)}),d(me,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>g(s/1.5)}),d(me,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(we())})),d("canvas",{ref:m,width:"256",height:"256"}))},jn=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=It(),[s,i]=v(we()),[l,u]=v("minecraft:plains"),[h,m]=v(.2),[p,g]=v(.1),[y,b]=v(!1),[x,k]=v(void 0),C=f(0),M=f(void 0),A=JSON.stringify([e,h,p]),I=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:z,redraw:j}=Ve({size:()=>[I,I],async draw(t){const o={biome:l,biomeDepth:p,biomeScale:h,offset:C.current,width:t.width,seed:s,version:n};await wn(e,t,o)},async onDrag(e){C.current+=e*I,j()},async onHover(t,n){var o,r;const a=Math.floor(t*I-C.current),s=I-Math.max(1,Math.ceil(n*I))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),i=function(e,t){const n=vn.find((t=>T.minBlockX(t.pos)<=e&&T.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(B.create(e,t,0))}(a,s);k(i?`Y=${s} (${i.getName().path})`:`Y=${s}`)},onLeave(){k(void 0)}},[A,s]);c((()=>{M.current&&clearInterval(M.current),t&&(async()=>{try{await j(),y&&(M.current=setInterval((()=>{C.current-=8,j()}),100))}catch(e){throw e}})()}),[A,s,t,l,h,p,y]);const E=w((()=>{var e;return null!=(e=null==mt?void 0:mt.get("worldgen/biome"))?e:[]}),[n]);return d(_,null,d("div",{class:"controls preview-controls"},x&&d(me,{label:x,class:"no-pointer"}),d(He,{icon:"gear",tooltip:a("terrain_settings")},vt(n,void 0,"1.17")?d(_,null,d(Pe,{label:a("preview.scale"),value:`${h}`,onChange:e=>m(Number(e))}),d(Pe,{label:a("preview.depth"),value:`${p}`,onChange:e=>g(Number(e))})):d(Pe,{label:a("preview.biome"),value:l,onChange:u,dataList:E,larger:!0}),d(me,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(me,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>i(we())})),d("canvas",{ref:z,width:I,height:I}))},En=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function $n({model:e,version:t,id:n,shown:o}){var r;const[,a]=v(0);if(Be(e,(()=>{a((e=>e+1))})),!e)return d(_,null);if("dimension"===n&&(null==(r=e.get(new h.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new h.Path(["generator","biome_source"]));if(n)return d(Mn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/density_function"===n){const n=e.get(new h.Path([]));if(n)return d(In,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(zn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(jn,i({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&vt(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(An,i({},{model:e,version:t,shown:o,data:n}))}return d(_,null)}function On(e,t){return e.schema.hook(Sn,new h.ModelPath(e),e.data,{blockStates:t})}const Sn={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,s;if(void 0===o)return;const i="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(s=r.blockStates)?void 0:s[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;i&&!Object.keys(null!=(a=i.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const s=a[e].hook(this,t.push(e),n[e],o);null!=s&&(r[e]=s)}));for(const s of Object.getOwnPropertySymbols(n))r[s]=n[s];return r}},Ln={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Pn={json:{parse:te.parse,stringify:(e,t)=>te.stringify(e,null,t)+"\n"},yaml:{parse:ne.load,stringify:(e,t)=>ne.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Dn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:s,onError:i}){const{locale:l}=It(),[u,m]=v(_t.getIndent()),[p,g]=v(_t.getFormat()),[w,y]=v(_t.getHighlighting()),b=f(null),x=f(),k=f(),C=f(),M=f(),I=A(((e,t)=>{const n=On(e,t);return Pn[p].stringify(n,Ln[u])}),[u,p]);c((()=>{x.current=()=>{if(t&&n)try{const e=I(t,n);M.current.setValue(e)}catch(e){e instanceof Error?(e.message=`Error getting JSON output: ${e.message}`,i(e)):i(`Error getting JSON output: ${$e(e)}`),console.error(e),M.current.setValue("")}},k.current=()=>{const e=M.current.getValue();if(0!==e.length)try{const n=Pn[p].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){n instanceof Error?(n.message=`Error importing: ${n.message}`,i(n)):i(`Error importing: ${$e(n)}`),console.error(n)}}}),[t,n,u,p,w]),c((()=>{if(w){const e=ee.edit("editor");e.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),e.$blockScrolling=1/0,e.on("blur",(e=>k.current(e))),e.getSession().setMode("ace/mode/json"),M.current={getValue:()=>e.getSession().getValue(),setValue(t){e.getSession().setValue(t)},configure(t,n){e.setOption("useSoftTabs","tabs"!==t),e.setOption("tabSize","tabs"===t?4:Ln[t]),e.getSession().setMode(`ace/mode/${n}`)},select(){e.selectAll()}}}else M.current={getValue:()=>C.current.value,setValue(e){C.current.value=e},configure(){},select(){}}}),[w]),Be(t,(()=>{x.current()})),c((()=>{t&&x.current()}),[t]),c((()=>{M.current.configure(u,p),x.current()}),[u,p,w]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(I(t,n)).then((()=>{s()}))}),[o]),c((()=>{if(r&&t&&n&&b.current){const o=encodeURIComponent(I(t,n));b.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),b.current.setAttribute("download",`${e}.${p}`),b.current.click()}}),[r]),c((()=>{a&&M.current&&(M.current.setValue(""),M.current.select())}),[a]);return d(_,null,d("div",{class:"controls source-controls"},d(He,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(Ln).map((([e])=>d(me,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,_t.setIndent(t),void m(t);var t}}))),d("hr",null),Object.keys(Pn).map((e=>d(me,{label:l(`format.${e}`),active:p===e,onClick:()=>{return t=e,_t.setFormat(t),void g(t);var t}}))),d("hr",null),d(me,{icon:w?"square_fill":"square",label:l("highlighting"),onClick:()=>{return e=!w,_t.setHighlighting(e),void y(e);var e}}))),w?d("pre",{id:"editor",class:"source"}):d("textarea",{ref:C,class:"source",spellcheck:!1,autocorrect:"off",onBlur:k.current}),d("a",{ref:b,style:"display: none;"}))}class Vn extends h.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const Nn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","structure_placement.type","density_function.type"],Tn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],Bn=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],Hn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type","density_function.type"],Rn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],Fn=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],Gn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],Jn=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],Wn=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function Un({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[s,i,l]=e.schema.hook(Yn,a,Oe(e.data),t,n,o,{});return(null==(r=null==i?void 0:i.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},s,i),d("div",{class:"node-body"},l)):l}const Yn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,s)=>[null,d(Xn,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,s,i,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new h.ModelPath(o.getModel(),new h.Path(o.getArray(),[t.context])):o,[m,p,f]=c.node.hook(this,u,r,a,s,i,l);if(1===e.length)return[m,p,f];const v=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,g=d("select",{value:c.type,onChange:n=>(n=>{var a;const s=null!=(a=e.find((e=>e.type===n)))?a:c,i=s.node.default(),l=s.change?s.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==i?void 0:i.type)?i.config.feature:i;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},oo(a,v.contextPush(e.type))))));return[m,d(_,null,g,p),f]},list({children:e,config:t},n,o,r,a,s,c){const{expand:u,collapse:m,isToggled:p}=Zn(),[f,g]=v(50),w=n.getContext().join(".");if(Fn.includes(w)){return[d(_,null,[...Array(t.maxLength)].map(((e,t)=>d(ro,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(_,null,[...Array(t.maxLength)].map(((t,i)=>{var l;return e.hook(this,n.modelPush(i),null==(l=null==o?void 0:o[i])?void 0:l.node,r,a,s,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":Mt(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ge()},...o])}},Re.plus_circle),d(_,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},v)=>{if(v===f)return d("div",{class:"node node-header"},d("label",null,Mt(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},Mt(r,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},Mt(r,"entries_hidden.all")));if(v>f)return null;const w=n.push(v).contextPush("entry"),_="object"===e.type(w),y=p(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(ro,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${Mt(r,"expand")}\n${Mt(r,"expand_all","Ctrl")}`,onClick:u(h)},Re.chevron_right),d("label",null,oo(r,w,`${v}`)),d(qn,{key:h,path:w,value:t,schema:e}));return d(eo,l(i({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:s,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(v,0,{id:ge(),node:Oe(t)}),n.model.set(n,e)}}]}),{ctx:l(i({},c),{index:(0===v?1:0)+(v===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${Mt(r,"collapse")}\n${Mt(r,"collapse_all","Ctrl")}`,onClick:m(h)},Re.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":Mt(r,"remove"),onClick:()=>w.set(void 0)},Re.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":Mt(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[v-1],e[v]]=[e[v],e[v-1]],n.model.set(n,e)},disabled:0===v},Re.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":Mt(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[v+1],e[v]]=[e[v],e[v+1]],n.model.set(n,e)},disabled:v===o.length-1},Re.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":Mt(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ge()}])}},Re.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,s,c,u){var m,p,f,v,g;const{expand:w,collapse:y,isToggled:b}=Zn(),x=new h.ModelPath(Wn,new h.Path([no(o.toString())])),k="block_state_map"===(null==(m=n.validation)?void 0:m.validator)?null==c?void 0:c[h.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?h.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,h.StringNode(null,{enum:t})]));return Object.entries(null!=(v=k.properties)?v:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),h.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,s,c,u)}return[null,d(_,null,C.hook(this,x,null!=(g=x.get())?g:"",a,s,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":Mt(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Re.plus_circle)),d(_,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var m,p,f,v;const g=o.modelPush(t),_="object"===e.type(g),x=b(t);if(_&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(ro,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${Mt(a,"expand")}\n${Mt(a,"expand_all","Ctrl")}`,onClick:w(t)},Re.chevron_right),d("label",null,t),d(qn,{key:t,path:g,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(p=null==(m=k.properties)?void 0:m[t])?p:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(v=k.properties)?void 0:v[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(eo,l(i({key:t,schema:C,path:g,value:n},{lang:a,version:s,states:c,ctx:u}),{label:t}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${Mt(a,"collapse")}\n${Mt(a,"collapse_all","Ctrl")}`,onClick:y(t)},Re.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":Mt(a,"remove"),onClick:()=>g.set(void 0)},Re.trashcan))})))]},number:(e,t,n,o,r,a,s)=>[null,d(Kn,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,s,c,u,m){var p;const{expand:f,collapse:v,isToggled:g}=Zn();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&fe(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=io(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(ut),feature:ht},{context:"feature.decorated"})},s=h.ObjectNode(a,{context:"feature"}),i=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new Vn(s,(e=>{if(e.startsWith(i))return new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new h.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new h.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return io(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(i)){const o=[];io(c.data,o);const r=new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(i);return c.set(new h.Path,lo(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(i),t=[];io(c.data,t),t.splice(o,1);const r=lo(e,t);return c.set(new h.Path,r,n)}{const r=new h.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new h.ModelPath(e,new h.Path(t.getArray(),["feature"])).push(n)}let w=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(h.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":Mt(s,"expand"),onClick:t},Re.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":Mt(s,"remove"),onClick:e},Re.trashcan)}const b=r.getContext().join(".");if(Jn.includes(b)||Gn.includes(b)){const e=g(""),t=Gn.includes(b)?e:!e;if(w=d(_,null,d("button",{class:"toggle tooltipped tip-se","aria-label":Mt(s,t?"collapse":"expand"),onClick:e?v(""):f("")},t?Re.chevron_down:Re.chevron_right)),!t)return[w,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(i({},m),{loot:null==a?void 0:a.type}):m,k=d(_,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{const n=o(r,e),l=n.getContext().join(".");if(Tn.includes(l))return null;const[h,m,p]=t.hook(this,n,a[e],s,c,u,x),f="object"===t.type(n)&&Bn.includes(l),v=Hn.includes(l);return f||v?(w=d(_,null,w,d(ro,{lang:s,path:n}),d(ao,{lang:s,path:n}),h),y=d(_,null,y,m),f?p:null):d(eo,i({key:e,schema:t,path:n,value:a[e]},{lang:s,version:c,states:u,ctx:x}))})));return[w,y,k]},string:(e,t,n,o,r,a,s)=>[null,d(Qn,i({},l(i({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:s}))),null]};function qn({path:e,value:t}){var n,o,r,a,s;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(s=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?s:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const i of Object.values(null!=t?t:{}))if("string"==typeof i)return d("label",null,i.replace(/^minecraft:/,""));return null}function Zn(){const[e,t]=v(new Map),[n,o]=v(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function Xn({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(_,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},Mt(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},Mt(o,"true")))}function Kn({path:e,config:t,integer:n,value:o,lang:r}){var a;const s=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(_,null,d("input",{type:"text",value:null!=o?o:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>_e(e.model),class:"tooltipped tip-se","aria-label":Mt(r,"generate_new_seed")},Re.sync))}function Qn({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:s,states:i}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),m=e.getContext().join("."),p=to(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Rn.includes(m))return d("textarea",{value:null!=r?r:"",onBlur:c});if(to(n)&&!n.additional||Nn.includes(m)){let t=new h.Path([]);return to(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):to(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},Mt(a,"unset")),u.map((e=>d("option",{value:e},oo(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(to(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ge(),t=p?(e=>pe.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(_,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${s}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":Mt(a,"follow_reference")},Re.link_external))}{const t=null==i?void 0:i[h.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const eo=oe((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:s,ctx:c,actions:u,children:h}){var m;const p=t.type(n),f=t.category(n),v=n.getContext().join("."),[g,w]=Ne(),_=l(i({},c),{depth:(null!=(m=c.depth)?m:0)+1});delete _.index;const[y,b,x]=t.hook(Yn,n,o,r,a,s,_);return d("div",{class:`node ${p}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(ro,{lang:r,path:n}),d(ao,{lang:r,path:n}),h,y,d("label",null,null!=e?e:oo(r,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(me,{icon:e.icon,tooltip:Mt(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:Mt(r,e.label)))})),d("div",{class:"menu-item"},d(me,{icon:"clippy",tooltip:Mt(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(v)}),d("span",null,v)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Se(e.ctx,t.ctx)&&Se(e.value,t.value)));function to(e){return!!(null==e?void 0:e.enum)}function no(e){var t,n=0;for(t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n}function oo(e,t,...n){const o=t.getContext();for(let r=0;r<o.length;r+=1){const t=o.slice(r).join("."),a=Mt(e,t,...n);if(t!==a)return a}return o[o.length-1]}function ro({lang:e,path:t,nested:n}){var o;t.model instanceof Vn&&(t=t.model.map(t).withModel(t.model));const r=n?t.model.errors.getAll().filter((e=>e.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=Mt(e,r[0].error,...null!=(o=r[0].params)?o:[]);return so("node-error","issue_opened",a)}function ao({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=Mt(e,n);return o===n?null:so("node-help","info",o)}const so=(e,t,n)=>{const[o,r]=Ne();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Re[t],d("span",{class:"icon-popup"},n))};function io(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:fe(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),io(null!=(o=e.config.feature)?o:"",t)):e}function lo(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:lo(e,t)}}}function co({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=It();if(!t||!n||"none"===r)return d(_,null);const[a]=re((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(_,null);const[,s]=v(0);return Be(t,(()=>{s((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(Un,i({},{model:t,lang:r,version:e,blockStates:n})))}function uo({term:e}){const{actualTheme:t}=Pt(),n="light"===t?"-burn":"",o=`https://${location.host}/assets/giscus${n}.css`;return d(ae,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:o,lang:"en"})}const ho={system:"device_desktop",dark:"moon",light:"sun"};function mo(){const{lang:e,locale:t,changeLanguage:n}=It(),{theme:o,changeTheme:r}=Pt(),{version:a}=Ht(),{title:s}=Nt(),i=ke(m());return d("header",null,d("div",{class:"title"},d(se,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},po.home),d("h1",null,s),i&&d(He,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},pe.generators.filter((e=>e.category===(null==i?void 0:i.category)&&vt(a,e.minVersion))).map((e=>d(me,{label:t(e.id),active:e.id===i.id,onClick:()=>p(be(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(He,{icon:"globe",tooltip:t("language")},pe.languages.map((({code:t,name:o})=>d(me,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(He,{icon:ho[o],tooltip:t("theme")},Object.entries(ho).map((([e,n])=>d(me,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},Re.mark_github)))))}const po={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function fo({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:s,delayedPlay:i}){const{locale:l}=It(),{version:u}=Ht(),[h,m]=v(!0),[p,g]=v(!1),[w,_]=v(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,s;const i=e[t];_(0===(null!=(a=null==(n=null==i?void 0:i.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(s=null==i?void 0:i.sounds)?s:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,s=t,`${tt(pe.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${s}.ogg`);var a,s;const i=new ie.Howl({src:[n],format:["ogg"],volume:r,rate:o});i.on("end",(()=>{g(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&m(!1)};return"loaded"===i.state()?setTimeout((()=>l())):i.on("load",(()=>{l()})),i})),m(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(h||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),g(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{i&&setTimeout((()=>x()),50*n)}),[i]),c((()=>()=>k()),[]);const[C,M]=v(!1),A=f(void 0);return d("div",{class:`sound-config${h?" loading":p?" playing":""}${w?" invalid":""}`},d(me,{class:"play",icon:w?"alert":h?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":h?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(We,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d(Ue,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(Ye,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(Ye,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(me,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),M(!0),void 0!==A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{M(!1)}),2e3)}}),d(me,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{s(),k()}}))}function vo({title:e,desc:t,link:n,icon:o,children:r}){const a=d(_,null,d("div",{class:"tool-head"},o&&po[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function go({entries:e,onSelect:t,indent:n}){const o=w((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=w((()=>e.filter((e=>!e.includes("/")))),e),[a,s]=v(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(wo,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void s(new Set(a));var t}}),!a.has(e)&&d(go,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(wo,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function wo({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Re[e],t)}function _o({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(yo,i({},e.version)),d(yo,i({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(bo,{label:e,onClick:n?()=>n(e):void 0,active:null==t?void 0:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:le(e.content)}}))}function yo({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function bo({label:e,active:t,onClick:n}){const o="breaking"===e?5:ye(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Re.alert,e)}function xo({changes:e,defaultOrder:t}){const{locale:n}=It(),[o,r]=v(""),[a,s]=v([]),i=e=>{a.includes(e)?s(a.filter((t=>t!==e))):s([...a,e])},l=w((()=>{const t=o.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===t.length&&0===a.length?e:null==e?void 0:e.filter((e=>{if(!a.every((t=>e.tags.includes(t))))return!1;const n=e.tags.join(" ")+" "+e.content.toLowerCase();return t.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[e,o,a]),[c,u]=v("desc"===t),h=w((()=>null==l?void 0:l.sort(((e,t)=>c?t.order-e.order:e.order-t.order))),[l,c]);return d(_,null,d("div",{class:"changelog-query"},d(We,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:o,onChange:r}),d(me,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})),a.length>0&&d("div",{class:"changelog-tags"},a.map((e=>d(bo,{label:e,onClick:()=>s(a.filter((t=>t!==e)))})))),d("div",{class:"changelog-list"},void 0===h?d("span",null,n("loading")):0===h.length?d("span",null,n("changelog.no_results")):h.map((e=>d(_o,{change:e,activeTags:a,toggleTag:i})))))}function ko({version:e}){const{locale:t}=It(),[n,o]=v("changelog"),[r,a]=v(void 0);c((()=>{Ke().then((e=>a(e.map((e=>l(i({},e),{tags:e.tags.filter((t=>t!==e.group.id))})))))).catch((e=>console.error(e)))}),[]);const s=w((()=>null==r?void 0:r.filter((t=>t.version.id===e.id||t.group.id===e.id))),[e.id,r]);return d(_,null,d("div",{class:"version-detail"},d("h2",null,e.name),d("div",{class:"version-info"},d(Io,{label:t("versions.released"),value:Co(e)}),d(Io,{label:t("versions.release_target"),value:e.release_target,link:e.id!==e.release_target?`/versions/?id=${e.release_target}`:void 0}),d(Io,{label:t("versions.data_version"),value:e.data_version}),d(Io,{label:t("versions.protocol_version"),value:e.protocol_version}),d(Io,{label:t("versions.data_pack_format"),value:e.data_pack_version}),d(Io,{label:t("versions.resource_pack_format"),value:e.resource_pack_version})),d("div",{class:"version-tabs"},d("span",{class:"changelog"===n?"selected":"",onClick:()=>o("changelog")},t("versions.technical_changes")),d("span",{class:"discussion"===n?"selected":"",onClick:()=>o("discussion")},t("versions.discussion"))),d("div",{class:"version-tab"},"changelog"===n&&d(xo,{changes:s,defaultOrder:"asc"}),"discussion"===n&&d(uo,{term:`version/${e.id}`}))))}function Co(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function Mo({version:e,link:t}){const{locale:n}=It();return d("a",{class:"version-entry",href:t},d("span",{class:"version-id"},e.id),d(Io,{label:n("versions.released"),value:Co(e),compact:!0}),d(Io,{label:n("versions.data_version"),value:e.data_version,optional:!0}),d(Io,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0}))}function Ao({versions:e,link:t}){const{locale:n}=It(),[o,r]=v(!0),[a,s]=v(""),i=w((()=>e.filter((e=>!("snapshot"===e.type&&!o)&&e.id.includes(a)))),[e,o,a]);return d(_,null,d("div",{class:"versions-controls"},d(We,{class:"btn btn-input version-search",list:"sound-list",placeholder:n("versions.search"),value:a,onChange:s}),d(Ge,{label:"Include snapshots",value:o,onChange:r})),d("div",{class:"version-list"},i.map((e=>d(Mo,{version:e,link:null==t?void 0:t(e.id)}))),0===i.length&&d("span",null,n("versions.no_results"))))}function Io({label:e,value:t,link:n,compact:o,optional:r}){return d("div",{class:"version-metadata"+(r?" version-metadata-hide":"")},d("span",{class:o?"version-metadata-hide":void 0},e,": "),d("span",{class:"version-metadata-value"},t),n&&d("a",{href:n,class:"version-metadata-link"},Re.link_external))}function zo({category:e}){const{locale:t}=It();return Nt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},pe.generators.filter((t=>t.category===e)).map((e=>d(vo,{title:t(e.id),link:be(e.url)})))))}function jo({}){const{locale:e}=It(),[t,n]=v(null);Nt(e("title.changelog"));const[o,r]=v([]);return c((()=>{Ke().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]),d("main",null,d(he,{type:"text",id:"changelog"}),t&&d(Fe,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog"},d(xo,{changes:o,defaultOrder:"desc"})))}function Eo({}){var e;const{locale:t}=It(),{version:n,changeVersion:o}=Ht(),{project:r,file:a,updateFile:s,openFile:u,closeFile:f}=$t(),[g,w]=v(null),[y,b]=re();if(y)return y.message=`Something went wrong rendering the generator: ${y.message}`,d("main",null,d(Fe,{error:y,onDismiss:b}));const x=ke(m());if(!x)return d("main",null,d(Fe,{error:`Cannot find generator "${m()}"`}));const k=pe.versions.filter((e=>vt(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));Nt(t("title.generator",t(x.id)),k),vt(n,x.minVersion)||w(`The minimum version for this generator is ${x.minVersion}`),vt(n,void 0,x.maxVersion)||w(`This generator is not available in versions above ${x.maxVersion}`);const C=Ce(m()).get("preset");c((()=>{M&&C&&R(C).then((e=>{null==M||M.reset(h.DataModel.wrapLists(e),!1),Me({version:n,preset:C})}))}),[C]);const[M,A]=v(null),[I,z]=v(null);c((()=>{w(null),A(null),async function(e){return(await ft(e)).blockStates}(n).then((e=>z(e))),async function(e,t){var n;if(!ct[t]||ct[t].version!==e){const r=await ft(e);ut=h.Reference(r.schemas,"configured_decorator"),ht=h.ChoiceNode([{type:"string",node:h.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:h.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=pe.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new h.DataModel(n,{wrapLists:!0});ct[t]?o.reset(ct[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),ct[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${$e(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return ct[t].model}(n,x.id).then((async e=>{if(ue.setGenerator(x.id),C){const t=await R(C);e.reset(h.DataModel.wrapLists(t),!1)}A(e)})).catch((e=>{console.error(e),w(e)}))}),[n,x.id]);const[j,E]=v(!1);Be(M,(()=>{Me({version:void 0,preset:void 0}),w(null),E(!0)}));const[$,O]=v(""),[S,L]=De(),[P,D]=De(),V=()=>{if($!==(null==a?void 0:a.id)&&$&&M&&I){const e=On(M,I);s(x.id,null==a?void 0:a.id,{id:$,data:e})?L():(D(),a&&O(null==a?void 0:a.id))}else a&&O(null==a?void 0:a.id)};c((()=>{a&&O(a.id)}),[a]),c((()=>{var e;M&&(O(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type&&M.reset(h.DataModel.wrapLists(a.data)),E(!1))}),[a,M]);const N=e=>{e.ctrlKey&&"z"===e.key?(ue.generatorEvent("undo","Hotkey"),null==M||M.undo()):e.ctrlKey&&"y"===e.key&&(ue.generatorEvent("redo","Hotkey"),null==M||M.redo())},T=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),M&&I&&a)){ue.generatorEvent("save","Hotkey");const e=On(M,I);s(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),L()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",T),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",T)})),[M,I,a]);const[B,H]=v([]);c((()=>{(async function(e){const t=await ft(e);return mt=t.collections,t.collections})(n).then((e=>{H(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),w(e)}))}),[n,x.id]);const R=async e=>{var t,o,r;try{const a=await at(n,null!=(t=x.path)?t:x.id,e),s=null==M?void 0:M.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==s&&(a.generator.seed=s,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=s)),a}catch(a){w(a instanceof Error?a:$e(a))}},[F,G]=v(window.innerWidth>820),[J,W]=v(0),[U,Y]=v(0),[q,Z]=v(0),[X,K]=De(),[Q,ee]=v(!1),te=En.includes(x.id)&&!("worldgen/configured_feature"===x.id&&vt(n,"1.18"));Q&&!te&&ee(!1);let ne=1;te&&(ne+=1),F&&(ne+=2);return d(_,null,d("main",{class:Q?"has-preview":""},d(he,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(He,{icon:"repo",label:r.name,relative:!1},d(me,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>p("/project")}),a&&d(me,{icon:"file",label:t("project.new_file"),onClick:f}),d(qe,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d(We,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:$,onChange:O,onEnter:V,onBlur:V}),a&&d(me,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&s(x.id,a.id,{})}})),j?d("div",{class:"status-icon"},Re.dot_fill):S?d("div",{class:"status-icon active"},Re.check):P&&d("div",{class:"status-icon danger"},Re.x)),d("div",{class:"generator-controls"},d(me,{icon:"upload",label:t("import"),onClick:()=>{ue.generatorEvent("import"),G(!0),Z(q+1)}}),d(He,{icon:"archive",label:t("presets"),relative:!1},d(qe,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:B,onSelect:e=>{ue.generatorEvent("load-preset",e),Me({version:n,preset:e})}})),d(He,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(me,{label:e,active:e===n,onClick:()=>o(e)})))),d(He,{icon:"kebab_horizontal",tooltip:t("more")},d(me,{icon:"history",label:t("reset"),onClick:()=>{ue.generatorEvent("reset"),null==M||M.reset(h.DataModel.wrapLists(M.schema.default()),!0)}}),d(me,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),ue.generatorEvent("undo","Menu"),null==M||M.undo()}}),d(me,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),ue.generatorEvent("redo","Menu"),null==M||M.redo()}})))),g&&d(Fe,{error:g,onDismiss:()=>w(null)}),d(co,l(i({},{model:M,version:n,blockStates:I}),{onError:w}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ne}px;`},d("div",{class:`popup-action action-preview${te?" shown":""} tooltipped tip-nw`,"aria-label":t(Q?"hide_preview":"show_preview"),onClick:()=>{ue.generatorEvent("toggle-preview",Q?"hidden":"visible"),ee(!Q),!Q&&F&&G(!1)}},Q?Re.x_circle:Re.play),d("div",{class:`popup-action action-download${F?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{ue.generatorEvent("download"),Y(U+1)}},Re.download),d("div",{class:`popup-action action-copy${F?" shown":""}${X?" active":""} tooltipped tip-nw`,"aria-label":t(X?"copied":"copy"),onClick:()=>{ue.generatorEvent("copy"),W(J+1)}},X?Re.check:Re.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(F?"hide_output":"show_output"),onClick:()=>{ue.generatorEvent("toggle-output",F?"hidden":"visible"),G(!F),W(0),Y(0),Z(0)}},F?Re.chevron_right:Re.code)),d("div",{class:"popup-preview"+(Q?" shown":"")},d($n,l(i({},{model:M,version:n,id:x.id}),{shown:Q,onError:w}))),d("div",{class:"popup-source"+(F?" shown":"")},d(Dn,l(i({},{model:M,blockStates:I,doCopy:J,doDownload:U,doImport:q}),{name:null!=(e=x.schema)?e:"data",copySuccess:K,onError:w}))))}function $o({}){const{locale:e}=It();return Nt(e("title.home")),d("main",null,d("div",{class:"home"},d(vo,{title:"Data packs"},pe.generators.filter((e=>!e.category)).map((t=>d(vo,{title:e(t.id),link:be(t.url)}))),d(vo,{title:e("worldgen"),link:"/worldgen/"})),d(vo,{title:"Resource packs"},pe.generators.filter((e=>"assets"===e.category)).map((t=>d(vo,{title:e(t.id),link:be(t.url)})))),d(vo,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(vo,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(vo,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(vo,{title:"Technical Changelog",link:"/changelog/"}),d(vo,{title:"Minecraft Versions",link:"/versions/"}),d(uo,null)))}function Oo({}){const{locale:e}=It(),{project:t,openFile:n}=$t();Nt(e("title.project",t.name));const o=w((()=>t.files.map(St)),t.files);return d("main",null,d(he,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(go,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function So({}){const{locale:e}=It(),{version:t,changeVersion:n}=Ht(),[o,r]=v(null);Nt(e("title.sounds"));const[a,s]=v({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=pe.versions.find((t=>t.id===e));await nt(t);try{const e=`${tt(t,"summary")}/sounds/data.min.json`;return await st(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${$e(n)}`)}})(t).then(s).catch((e=>{console.error(e),r(e)}))}),[t]);const[h,m]=v(""),[p,g]=v([]),w=()=>{g([{id:ge(),sound:h,delay:0,pitch:1,volume:1},...p])},y=e=>()=>{g(p.filter((t=>t.id!==e)))},[b,x]=v(0),k=f(null);return d("main",null,o&&d(Fe,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(_,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(We,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:m,onEnter:w}),d(me,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:w})),p.length>1&&d(me,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(me,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=p.some((e=>e.delay>0)),t=p.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(He,{icon:"tag",label:t},pe.versions.reverse().map((e=>d(me,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},p.map((e=>{return d(fo,l(i(i({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{g(p.map((n=>n.id===t?i(i({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},u.map((e=>d("option",{key:e,value:e})))))}function Lo({}){const{locale:e}=It(),[t,n]=v(null);Nt(e("title.versions"));const[o,r]=v([]);c((()=>{(async function(){const e=pe.versions[pe.versions.length-1];await nt(e);try{return st(`${tt(e,"summary")}/versions/data.min.json`)}catch(t){throw new Error(`Error occured while fetching versions: ${$e(t)}`)}})().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const a=Ce(m()).get("id"),s=o.find((e=>e.id===a));Nt(s?s.name:"Versions Explorer",s?[]:void 0);const l=s&&Po(o,s,-1),u=s&&Po(o,s,1);return d("main",null,d(he,{type:"text",id:"versions"}),t&&d(Fe,{error:t,onDismiss:()=>n(null)}),d("div",{class:"versions"},s?d(_,null,d("div",{class:"version-navigation"},d("a",{class:"btn btn-link",href:"/versions/"},Re.three_bars,e("versions.all")),d("a",i({class:"btn btn-link"},u?{href:`/versions/?id=${u.id}`}:{disabled:!0}),Re.arrow_left,e("versions.previous")),d("a",i({class:"btn btn-link"},l?{href:`/versions/?id=${l.id}`}:{disabled:!0}),e("versions.next"),Re.arrow_right)),d(ko,{version:s})):d(Ao,{versions:o,link:e=>`/versions/?id=${e}`})))}function Po(e,t,n){const o=e.findIndex((e=>e.id===t.id))+n;if(!(o<0||o>=e.length))return e[o]}function Do(){return d(_,null,d(mo,null),d(ce,{onChange:e=>{setTimeout((()=>ue.pageview(be(e.url))))}},d($o,{path:"/"}),d(zo,{path:"/worldgen",category:"worldgen"}),d(zo,{path:"/assets",category:"assets"}),d(So,{path:"/sounds"}),d(jo,{path:"/changelog"}),d(Lo,{path:"/versions"}),d(Oo,{path:"/project"}),d(Eo,{default:!0})))}function Vo(){return d(zt,null,d(Dt,null,d(Rt,null,d(Tt,null,d(Ot,null,d(Do,null))))))}de(d(Vo,null),document.body); -//# sourceMappingURL=index.dc4f43f8.js.map diff --git a/assets/index.dc4f43f8.js.map b/assets/index.dc4f43f8.js.map deleted file mode 100644 index aef68a37..00000000 --- a/assets/index.dc4f43f8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.dc4f43f8.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Giscus.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function setPrefersColorScheme(colorScheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, colorScheme)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn <div data-ea-publisher=\"misode-github-io\" data-ea-type={type} class=\"ad dark flat\" id={id}></div>\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn <div class={`btn${active ? ' active' : ''}${clazz ? ` ${clazz}` : ''}${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}`} onClick={onClick} aria-label={tooltip}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t</div>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise<any> {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map<string, string>()\n}\n\nexport function setSeachParams(modifications: Record<string, string | undefined>, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap<A, B> {\n\tprivate readonly forward: Map<A, B>\n\tprivate readonly backward: Map<B, A>\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef<HTMLInputElement>(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn <div class={`btn btn-input ${large ? 'large-input' : ''} ${larger ? 'larger-input' : ''}`} onClick={e => e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t\t<input ref={ref} type=\"text\" value={value} onChange={onInput} placeholder={placeholder} list={dataListId} />\n\t\t{dataList && <datalist id={dataListId}>\n\t\t\t{dataList.map(e => <option value={e} />)}\n\t\t</datalist>}\n\t</div>\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef<number | undefined>(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise<unknown>,\n\tonDrag?: (dx: number, dy: number) => Promise<unknown>,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef<HTMLCanvasElement>(null)\n\n\tconst dragStart = useRef<Vec2 | undefined>()\n\tconst dragRequest = useRef<number>()\n\tconst dragPending = useRef<Vec2>([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise<unknown>>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`btn-menu${relative === false ? ' no-relative' : ''}`} {...props}>\n\t\t<Btn {...{icon, label, tooltip, tooltipLoc}} onClick={setActive} />\n\t\t{active && <div class=\"btn-group\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tsquare: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z\"></path></svg>,\n\tsquare_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { mapStackTrace } from 'sourcemapped-stacktrace'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState<string | undefined>(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t}).join('\\n')\n\t\t\t\tsetStack(mappedStack)\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && <span onClick={() => setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t</span>}\n\t\t</h3>\n\t\t{stack && stackVisible && <pre>{stack}</pre>}\n\t\t<p>If you think this is a bug, you can report it <a href={url} target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn <label class=\"checkbox\">\n\t\t<input id={id} type=\"checkbox\" checked={value} onClick={() => onChange(!value)} />\n\t\t{label}\n\t</label>\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn <input {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type Change = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: Change[] | Promise<Change[]> | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map<Change>(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core';\nimport config from '../../config.json';\nimport { message } from '../Utils';\nimport type { BlockStateRegistry, VersionId } from './Schemas';\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map<string, unknown>(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise<SoundEvents> {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise<VersionMeta[]> {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nasync function getData<T = any>(url: string, fn: (v: any) => T = (v: any) => v): Promise<T> {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise<boolean>[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport * as java182 from '@mcschema/java-1.18.2'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record<string, VersionData | Promise<VersionData>> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record<string, ModelData> = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n\t'1.18.2': java182,\n}\n\nexport let CachedDecorator: INode<any>\nexport let CachedFeature: INode<any>\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise<VersionData> {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise<DataModel> {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise<CollectionRegistry> {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise<BlockStateRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18.2'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext<Locale>({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn <Locale.Provider value={value}>\n\t\t{children}\n\t</Locale.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial<Project>) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial<ProjectFile>) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext<ProjectContext>({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState<Project[]>(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState<string>(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial<Project>) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial<ProjectFile>) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn <Project.Provider value={value}>\n\t\t{children}\n\t</Project.Provider>\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn <Theme.Provider value={value}>\n\t\t{children}\n\t</Theme.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext<Title>({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome.toString(), options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz).toString(),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(Identifier.parse(state.biome as string))\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn Identifier.parse(state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (checkVersion(options.version, '1.18')) {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn Identifier.parse(BiomeIds.getA(ids[0]) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => Identifier.parse(BiomeIds.getA(id) ?? 'unknown'))\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Identifier.parse(minBiome)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, clampedMap, DensityFunction, FixedBiome, Identifier, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, Registry, WorldgenRegistries, XoroshiroRandom } from 'deepslate'\nimport * as deepslate18 from 'deepslate-1.18'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\nconst registryCache = new Map<VersionId, Registry<Registry<any>>>()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tawait initRegistries(options.version)\n\t\t}\n\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tconst { fn, settings } = await createDensityFunction(state, options)\n\n\tconst arr = Array(options.width * settings.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < settings.height; y += 1) {\n\t\t\tconst i = x + (settings.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * settings.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nasync function createDensityFunction(state: any, options: NoiseSettingsOptions) {\n\tawait initRegistries(options.version)\n\n\tconst random = XoroshiroRandom.create(options.seed).forkPositional()\n\tconst settings = NoiseSettings.fromJson({\n\t\tmin_y: -64,\n\t\theight: 384,\n\t\tsize_horizontal: 1,\n\t\tsize_vertical: 2,\n\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t})\n\tconst originalFn = DensityFunction.fromJson(state)\n\tconst fn = originalFn.mapAll(new NoiseRouter.Visitor(random, settings))\n\n\treturn {\n\t\tfn,\n\t\tsettings,\n\t}\n}\n\nconst Registries: [string, { fromJson(obj: unknown): any}][] = [\n\t['worldgen/noise', NoiseParameters],\n\t['worldgen/density_function', DensityFunction],\n]\n\nasync function initRegistries(version: VersionId) {\n\tconst rootRegistries = registryCache.get(version) ?? new Registry(new Identifier('misode', 'temp'))\n\tif (!registryCache.has(version)) {\n\t\tawait Promise.all(Registries.map(([id, c]) => fetchRegistry(version, rootRegistries, id, c)))\n\t\tregistryCache.set(version, rootRegistries)\n\t}\n\tWorldgenRegistries.DENSITY_FUNCTION.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/density_function')))\n\tWorldgenRegistries.NOISE.clear().assign(rootRegistries.getOrThrow(Identifier.create('worldgen/noise')))\n}\n\nasync function fetchRegistry<T extends { fromJson(obj: unknown): T }>(version: VersionId, root: Registry<Registry<unknown>>, id: string, clazz: T) {\n\tconst entries = await fetchAllPresets(version, id)\n\tconst registry = new Registry<typeof clazz>(Identifier.create(id))\n\tfor (const [key, value] of entries.entries()) {\n\t\tregistry.register(Identifier.parse(key), clazz.fromJson(value))\n\t}\n\troot.register(registry.key, registry)\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tif (checkVersion(options.version, '1.18.2')) {\n\t\t\tconst biomeSource = new FixedBiome(Identifier.create('unknown'))\n\t\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t\t} else {\n\t\t\tconst biomeSource = new deepslate18.FixedBiome('unknown')\n\t\t\tgeneratorCache = new deepslate18.NoiseChunkGenerator(options.seed, biomeSource, settings as any) as any\n\t\t}\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome?: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk, true)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { NoiseGeneratorSettings } from 'deepslate'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tawait noiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport brace from 'brace'\nimport 'brace/mode/json'\nimport 'brace/mode/yaml'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst textarea = useRef<HTMLTextAreaElement>()\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\tbraceEditor.setOptions({\n\t\t\t\tfontSize: 14,\n\t\t\t\tshowFoldWidgets: false,\n\t\t\t\thighlightSelectedWord: false,\n\t\t\t})\n\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\tbraceEditor.on('blur', e => onImport.current(e))\n\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t},\n\t\t\t\tsetValue(value) {\n\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t},\n\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t},\n\t\t\t\tselect() {\n\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\teditor.current.configure(indent, format)\n\t\tretransform.current()\n\t}, [indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `https://${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <GiscusReact\n\t\trepo=\"misode/misode.github.io\"\n\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\tcategory=\"Site\"\n\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\tmapping={term ? 'specific' : 'pathname'}\n\t\tterm={term}\n\t\treactionsEnabled=\"1\"\n\t\temitMetadata=\"0\"\n\t\tinputPosition=\"top\"\n\t\ttheme={themeUrl}\n\t\tlang=\"en\" />\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change, ChangelogVersion } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span>{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span>{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tversion: VersionMeta\n}\nexport function VersionDetail({ version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group.id) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version.id === version.id || c.group.id === version.id),\n\t[version.id, changelogs])\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version.name}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${version.id}`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" list=\"sound-list\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { Change } from '../services'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<Change[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSeachParams({ version, preset: currentPreset })\n\t\t\t})\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id })\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(e instanceof Error ? e : message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<Giscus />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import { getCurrentUrl } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\nimport { getSearchParams } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<Error | null>(null)\n\tuseTitle(locale('title.versions'))\n\n\tconst [versions, setVersions] = useState<VersionMeta[]>([])\n\tuseEffect(() => {\n\t\tfetchVersions()\n\t\t\t.then(versions => setVersions(versions))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst selectedId = getSearchParams(getCurrentUrl()).get('id')\n\tconst selected = versions.find(v => v.id === selectedId)\n\n\tuseTitle(selected ? selected.name : 'Versions Explorer', selected ? [] : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions, selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions, selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"versions\">\n\t\t\t{selected ? <>\n\t\t\t\t<div class=\"version-navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<VersionDetail version={selected} />\n\t\t\t</> : <VersionList versions={versions} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","value","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","setPrefersColorScheme","colorScheme","generatorEvent","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","model","seed","dimensions","get","Path","set","keys","forEach","s2","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","split","map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","key","delete","search","encodeURIComponent","str","abs","hashString","a2","b2","c","max","min","lerp","e","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","[object Object]","forward","backward","this","defaultValue","large","larger","doSelect","placeholder","dataList","onChange","onInput","value2","target","ref","useRef","current","select","dataListId","hexId","stopPropagation","list","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","hider","query","prefers","setPrefers","matchMedia","matches","mediaQuery","invalidated","listener","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","sort_asc","sort_desc","square","square_fill","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","stackVisible","setStackVisible","setStack","stack2","line","mapped","mappedStack","useMemo","url2","name","href","checked","component","evt","fn","onKeyDown","onEnter","displayName","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","terms","trim","filter","every","includes","t","BtnInput","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","getItem","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","data","getData","mcmeta","register","properties","default","versionId","registry","versions","cacheResponse","ok","fetchResponse","responseData","put","Response","JSON","stringify","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","1.18.2","java182","CachedDecorator","CachedFeature","CachedCollections","scriptRel","collections","getCollections","blockStates","collectionTarget","blockStateTarget","validateCache","fetchRegistries","fetchBlockStateMap","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getHighlighting","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setHighlighting","highlighting","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","actualTheme","changeTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","FixedBiome","Identifier","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","checkVersion","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","climate","climate_noise","w","result","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","create","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:deepslate","minecraft:bedrock","minecraft:grass_block","minecraft:dirt","minecraft:gravel","minecraft:sand","minecraft:sandstone","minecraft:netherrack","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:basalt","minecraft:end_stone","generatorCache","chunkCache","registryCache","initRegistries","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","deepslate18.FixedBiome","deepslate18.NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","XoroshiroRandom","forkPositional","NoiseSettings","min_y","terrain_shaper","originalFn","DensityFunction","mapAll","NoiseRouter","Visitor","createDensityFunction","density","compute","clampedMap","Registries","NoiseParameters","rootRegistries","Registry","root","fetchAllPresets","fetchRegistry","DENSITY_FUNCTION","clear","assign","getOrThrow","NOISE","minX","done","chunks","cached","Chunk","ChunkPos","Z","forcedBiome","chunk","buildSurface","chunkIndex","BiomeSourcePreview","shown","setScale","focused","setFocused","layers","setLayers","Set","refineTimeout","legacyRandomSource","getOctaves","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimates","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","getClimate","changeScale","newScale","BtnMenu","enabled","newSeed","k","toUpperCase","toFixed","DecoratorPreview","setSeed","randomSeed","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldY","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","noiseSettings","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","allBiomes","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","onImport","textarea","editor","getSerializedOutput","model2","blockStates2","getOutput","output","setValue","getValue","wrapLists","braceEditor","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","indent2","format2","setOption","selectAll","configure","clipboard","writeText","click","data-cy","changeIndent","changeFormat","changeHighlighting","spellcheck","autocorrect","onBlur","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","expanded","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","term","useTheme","themeSuffix","themeUrl","location","host","GiscusReact","repoId","categoryId","mapping","reactionsEnabled","emitMetadata","inputPosition","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","completed","copyActive","setCopyActive","copyTimeout","step","desc","roots","groups","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","activeTags","toggleTag","ArticleLink","ChangelogTag","dangerouslySetInnerHTML","__html","marked","changes","defaultOrder","setTags","filteredChangelogs","q2","toLowerCase","sort","setSort","sortedChangelogs","ChangelogEntry","tab","setTab","changelogs","setChangelogs","changelogs2","catch","console","VersionMetaData","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","ChangelogList","Giscus","Date","release_time","toLocaleDateString","day","month","year","compact","snapshots","setSnapshots","filteredVersions","Checkbox","VersionEntry","ToolCard","setError","Ad","ErrorPanel","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","setVersions","versions2","selectedId","selected","nextVersion","getOffsetVersion","previousVersion","VersionDetail","VersionList","offsetIndex","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index ed220c03..f1821001 100644 --- a/assets/index.html +++ b/assets/index.html @@ -18,7 +18,7 @@ </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Assets Generators Minecraft 1.17, 1.18, 1.18.2 + Assets Generators Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/assets/model/index.html b/assets/model/index.html index d3380072..cc1f2023 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -18,7 +18,7 @@ - Model Generator Minecraft 1.17, 1.18, 1.18.2 + Model Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/assets/vendor.ae3ccf68.js b/assets/vendor.7530e44b.js similarity index 54% rename from assets/vendor.ae3ccf68.js rename to assets/vendor.7530e44b.js index 9fba59d9..1f83727a 100644 --- a/assets/vendor.ae3ccf68.js +++ b/assets/vendor.7530e44b.js @@ -1,19 +1,19 @@ -var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,n,i)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[n]=i,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&a(e,n,t[n]);if(i)for(var n of i(t))o.call(t,n)&&a(e,n,t[n]);return e},c=(e,i)=>t(e,n(i)),l=e=>"symbol"==typeof e?e:e+"";const u={};var d,h,p,m,f,g={},_=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function v(e,t){for(var n in t)e[n]=t[n];return e}function y(e){var t=e.parentNode;t&&t.removeChild(e)}function w(e,t,n){var i,r,o,a=arguments,s={};for(o in t)"key"==o?i=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(n=[n],o=3;o0?x(p.type,p.props,p.key,null,p.__v):p)){if(p.__=n,p.__b=n.__b+1,null===(h=v[u])||h&&p.key==h.key&&p.type===h.type)v[u]=void 0;else for(d=0;d3)for(n=[n],o=3;ot.rank?-1:e.index-t.index}function J(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,Y(t).map(Z).join(""));var t}(e),e.props}function Y(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Z(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Q=null,ee=[],te=[],ne={};function ie(){var e;return""+((e=Q&&Q.location?Q.location:Q&&Q.getCurrentLocation?Q.getCurrentLocation():"undefined"!=typeof location?location:ne).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=ee.length;t--;)if(ee[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Q&&Q[t]?Q[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),oe(e)}function oe(e){for(var t=!1,n=0;n0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){ee.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Q&&(this.unlisten=Q.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),ee.splice(ee.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,n){return e.filter(J).sort(X).map((function(e){var i=K(t,e.props.path,e.props);if(i){if(!1!==n){var r={url:t,matches:i};return q(r,i),delete r.ref,delete r.key,H(e,r)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var n=e.children,i=e.onChange,r=t.url,o=this.getMatchingChildren(D(n),r,!0),a=o[0]||null,s=this.previousUrl;return r!==s&&(this.previousUrl=r,"function"==typeof i&&i({router:this,url:r,previous:s,active:o,current:a})),a},t}(N),he=function(e){return w("a",q({onClick:se},e))};de.subscribers=te,de.getCurrentUrl=ie,de.route=re,de.Router=de,de.Route=function(e){return w(e.component,e)},de.Link=he,de.exec=K;var pe,me,fe,ge=0,_e=[],be=d.__b,ve=d.__r,ye=d.diffed,we=d.__c,xe=d.unmount;function Ae(e,t){d.__h&&d.__h(me,e,ge||t),ge=0;var n=me.__H||(me.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Ne(e){return ge=1,ke(Ie,e)}function ke(e,t,n){var i=Ae(pe++,2);return i.t=e,i.__c||(i.__=[n?n(t):Ie(void 0,t),function(e){var t=i.t(i.__[0],e);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=me),i.__}function Ce(e,t){var n=Ae(pe++,3);!d.__s&&$e(n.__H,t)&&(n.__=e,n.__H=t,me.__H.__h.push(n))}function Ee(e,t){var n=Ae(pe++,4);!d.__s&&$e(n.__H,t)&&(n.__=e,n.__H=t,me.__h.push(n))}function Se(e){return ge=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var n=Ae(pe++,7);return $e(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Fe(e,t){return ge=8,Oe((function(){return e}),t)}function De(e){var t=me.context[e.__c],n=Ae(pe++,9);return n.__c=e,t?(null==n.__&&(n.__=!0,t.sub(me)),t.props.value):e.__}function Be(e){var t=Ae(pe++,10),n=Ne();return t.__=e,me.componentDidCatch||(me.componentDidCatch=function(e){t.__&&t.__(e),n[1](e)}),[n[0],function(){n[1](void 0)}]}function Le(){_e.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Te),e.__H.__h.forEach(Re),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),_e=[]}d.__b=function(e){me=null,be&&be(e)},d.__r=function(e){ve&&ve(e),pe=0;var t=(me=e.__c).__H;t&&(t.__h.forEach(Te),t.__h.forEach(Re),t.__h=[])},d.diffed=function(e){ye&&ye(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==_e.push(t)&&fe===d.requestAnimationFrame||((fe=d.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(i),Me&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,100);Me&&(t=requestAnimationFrame(n))})(Le)),me=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Te),e.__h=e.__h.filter((function(e){return!e.__||Re(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(n,e.__v)}})),we&&we(e,t)},d.unmount=function(e){xe&&xe(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Te)}catch(n){d.__e(n,t.__v)}};var Me="function"==typeof requestAnimationFrame;function Te(e){var t=me;"function"==typeof e.__c&&e.__c(),me=t}function Re(e){var t=me;e.__c=e.__(),me=t}function $e(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Ie(e,t){return"function"==typeof t?t(e):t}var je="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Pe={},ze={},Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.ModelPath=Ue.Path=Ue.relativePath=void 0,Ue.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class We{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new We(this.modelArr.slice(e,t),this.contextArr)}shift(){return new We(this.modelArr.slice(1),this.contextArr)}pop(){return new We(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new We([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new We([...this.modelArr],[...this.contextArr,t])}copy(){return new We([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new He(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,n)=>e===this.modelArr[t+n]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Ue.Path=We;class He extends We{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new He(this.model,super.slice(e,t))}shift(){return new He(this.model,super.shift())}pop(){return new He(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new He(this.model,super.modelPush(e))}contextPush(e){return new He(this.model,super.contextPush(e))}copy(){return new He(this.model,super.copy())}}Ue.ModelPath=He;var Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.Errors=void 0;class Ge{constructor(){this.errors=[]}add(e,t,...n){return this.errors.push({path:e,error:t,params:n}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}Ve.Errors=Ge;var qe={};function Ke(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(qe,"__esModule",{value:!0}),qe.hexId=qe.quoteString=qe.escapeString=void 0,qe.escapeString=Ke,qe.quoteString=function(e){return`"${Ke(e)}"`};const Xe=e=>("0"+e.toString(16)).substr(-2);qe.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Xe).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Je=Ue,Ye=Ve,Ze=qe;class Qe{constructor(e,t){var n,i,r,o;this.historyMax=null!==(n=null==t?void 0:t.historyMax)&&void 0!==n?n:50,this.verbose=null!==(i=null==t?void 0:t.verbose)&&void 0!==i&&i,this.wrapLists=null!==(r=null==t?void 0:t.wrapLists)&&void 0!==r&&r,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Qe.wrapLists(a):a,this.listeners=[],this.errors=new Ye.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,n){if(0===e.getArray().length)return void this.reset(t,!0);let i=this.data;e.pop().forEach((e=>{void 0!==i[e]&&"string"!=typeof i[e]&&"number"!=typeof i[e]||(this.wrapLists&&"number"==typeof e?i[e]={node:{},id:Ze.hexId()}:i[e]={}),i=this.wrapLists&&"number"==typeof e?i[e].node:i[e]})),null!==i&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?i.splice(e.last(),1):delete i[e.last()]:this.wrapLists&&"number"==typeof e.last()?i[e.last()]={node:t,id:Ze.hexId()}:i[e.last()]=t,n||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(i)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));for(const n of Object.getOwnPropertySymbols(e))t[n]=e[n];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,n])=>{t[e]=this.wrapLists(n)}));for(const n of Object.getOwnPropertySymbols(e))t[n]=e[n];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const n of Object.getOwnPropertySymbols(e))t[n]=e[n];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,n])=>{t[e]=this.unwrapLists(n)}));for(const n of Object.getOwnPropertySymbols(e))t[n]=e[n];return t}return e}}ze.DataModel=Qe;var et,tt={};et=tt,Object.defineProperty(et,"__esModule",{value:!0}),et.Keep=et.Opt=et.Has=et.Mod=et.Base=void 0,et.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...n){return e.base({node:this},t,...n)},canUpdate:()=>!1,update:()=>[]},et.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),et.Has=(e,t)=>et.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),et.Opt=function(e){return c(s({},e),{optional:()=>!0})},et.Keep=function(e){return c(s({},e),{keep:()=>!0})};var nt={};Object.defineProperty(nt,"__esModule",{value:!0}),nt.BooleanNode=void 0;const it=ze,rt=tt;nt.BooleanNode=()=>c(s({},rt.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,n,i){return i.loose&&"boolean"!=typeof t&&(t=i.wrapLists?it.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||n.add(e,"error.expected_boolean"),t},hook(e,t,...n){var i;return(null!==(i=e.boolean)&&void 0!==i?i:e.base).call(e,{node:this},t,...n)}});var ot={},at={};Object.defineProperty(at,"__esModule",{value:!0}),at.ListNode=void 0;const st=ze,ct=tt;at.ListNode=(e,t)=>{var n,i;const r=null!==(n=null==t?void 0:t.minLength)&&void 0!==n?n:0,o=null!==(i=null==t?void 0:t.maxLength)&&void 0!==i?i:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},ct.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(r)].map((t=>e.default())):[],navigate(t,n){const i=n+1;return t.getArray().length<=i?this:e.navigate(t,i)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,n,i,s){if(s.loose&&!Array.isArray(n)&&(n=s.wrapLists?st.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(n))return i.add(t,"error.expected_list"),n;a&&(n.lengtho)?r===o?i.add(t,"error.invalid_list_range.exact",n.length,r):i.add(t,"error.invalid_list_range.between",n.length,r,o):n.lengtho&&i.add(t,"error.invalid_list_range.larger",n.length,o);const c=n.map(((n,r)=>{const o=e.validate(t.push(r),s.wrapLists?n.node:n,i,s);return s.wrapLists?{node:o,id:n.id}:o}));for(const e of Object.getOwnPropertySymbols(n))c[e]=n[e];return c},hook(n,i,...r){var o;return(null!==(o=n.list)&&void 0!==o?o:n.base).call(n,{node:this,children:e,config:null!=t?t:{}},i,...r)}})};var lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.SwitchNode=void 0;const ut=tt;lt.SwitchNode=e=>c(s({},ut.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var n;const i=t+1;return null===(n=this.activeCase(e.slice(0,i)))||void 0===n?void 0:n.node.navigate(e,t)},pathPush(e,t){var n,i;return null!==(i=null===(n=this.activeCase(e))||void 0===n?void 0:n.node.pathPush(e,t))&&void 0!==i?i:e},suggest(t,n){var i,r;return null!==(r=null===(i=this.activeCase(t))||void 0===i?void 0:i.node.suggest(t,n))&&void 0!==r?r:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,n))).reduce(((e,t)=>e.concat(t)))},validate(e,t,n,i){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,n,i)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,n){const i=(e,t)=>{var n,i;return(null!==(n=t.priority)&&void 0!==n?n:0)-(null!==(i=e.priority)&&void 0!==i?i:0)},r=e.filter((e=>e.match(t))).sort(i);return n&&0===r.length?e.sort(i)[0]:r.length>0?r[0]:void 0},hook(e,t,...n){return this.activeCase(t,!0).node.hook(e,t,...n)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=at,n=lt;e.ChoiceNode=(e,t)=>{const i=n.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},i),{validate(e,t,n,r){let o=i.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,n,r)},hook(n,r,...o){var a;return(null!==(a=n.choice)&&void 0!==a?a:n.base).call(n,{node:this,choices:e,config:null!=t?t:{},switchNode:i},r,...o)}})};const i=n=>(i,r)=>e.ChoiceNode([{type:n,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:t.ListNode(i),change:e=>e?[e]:[]}],r);e.ObjectOrList=i("object"),e.StringOrList=i("string"),e.ObjectOrPreset=(t,n,i)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(i)[0]},{type:"object",node:n,change:e=>{var t;return null!==(t=i[e])&&void 0!==t?t:i[Object.keys(i)[0]]}}])}(ot);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.MapNode=void 0;const ht=tt,pt=ze;dt.MapNode=(e,t,n)=>c(s({},ht.Base),{type:()=>"map",default:()=>({}),navigate(e,n){const i=n+1;return e.getArray().length<=i?this:t.navigate(e,i)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(n,i,r,o){if(o.loose&&"object"!=typeof i&&(i=o.wrapLists?pt.DataModel.wrapLists(this.default()):this.default()),null===i||"object"!=typeof i)return r.add(n,"error.expected_object"),i;const a={};Object.keys(i).forEach((s=>{e.validate(n,s,r,o),a[s]=t.validate(n.push(s),i[s],r,o)}));for(const e of Object.getOwnPropertySymbols(i))a[e]=i[e];return a},validationOption(t){var i;return null!==(i=null==n?void 0:n.validation)&&void 0!==i?i:e.validationOption(t.push(""))},hook(i,r,...o){var a;return(null!==(a=i.map)&&void 0!==a?a:i.base).call(i,{node:this,keys:e,children:t,config:null!=n?n:{}},r,...o)}});var mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Pe,n=ze,i=tt;e.NumberNode=e=>{var t,r,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,u=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,d=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},i.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,i,r){return r.loose&&"number"!=typeof t&&(t=r.wrapLists?n.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?i.add(e,"error.expected_number"):a&&!Number.isInteger(t)?i.add(e,"error.expected_integer"):d&&(tu)?i.add(e,"error.invalid_number_range.between",t,l,u):tu&&i.add(e,"error.invalid_number_range.larger",t,u),t},hook(t,n,...i){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:a,min:l,max:u,between:d,config:null!=e?e:{}},n,...i)}})},e.NumberEnum=({integer:n,values:i})=>t.Mod(e.NumberNode({integer:n}),(e=>({validate:(t,n,r,o)=>(n=e.validate(t,n,r,o),i.includes(n)||r.add(t,"error.invalid_number_enum",i.join(", ")),n)})))}(mt);var ft={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=tt,n=Ue,a=Ve,u=qe,d=ze;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(h,p)=>{var m,f;const g=h,{[m=e.Switch]:_,[f=e.Case]:b}=g,v=((e,t)=>{var n={};for(var a in e)r.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&i)for(var a of i(e))t.indexOf(a)<0&&o.call(e,a)&&(n[a]=e[a]);return n})(g,[l(m),l(f)]),y=e=>{if(void 0===_)return v;const t=n.relativePath(e,_).get(),i=b[t];return s(s({},v),i)},w=(e,t)=>{var i;const r=_?n.relativePath(e,_).get():void 0,o=_&&null!==(i=b[r])&&void 0!==i?i:{},a=Object.keys(o),s=(null==p?void 0:p.context)?new n.ModelPath(e.getModel(),new n.Path(e.getArray(),[p.context])):e;return(!(null==p?void 0:p.disableSwitchContext)&&r&&a.includes(t)?s.contextPush(r):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==p?void 0:p.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const n=t+1,i=e.getArray();if(i.length<=n)return this;const r=y(e.slice(0,n))[i[n]];return null==r?void 0:r.navigate(e,n)},pathPush:(e,t)=>w(e,t.toString()),suggest(e,t){const n=y(e),i=Object.keys("object"==typeof t?t:{});return Object.keys(n).filter((t=>n[t].enabled(e))).filter((e=>!i.includes(e))).map(u.quoteString)},validate(e,t,i,r){if(r.loose&&"object"!=typeof t&&(t=r.wrapLists?d.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return i.add(e,"error.expected_object"),t;let o=v;if(_){const i=n.relativePath(e,_);let c=i.get();if(e.equals(i.pop())){const n=i.last();c=v[n].validate(e.push(n),t[n],new a.Errors,r)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),u=new Set([...l,...Object.keys(t)]),h={};u.forEach((n=>{if(c.includes(n)){if(!o[n].enabled(e))return;const a=o[n].validate(e.push(n),t[n],i,r);!o[n].keep()&&o[n].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete h[n]:(h[n]=a,e.getModel().set(e.push(n),a,!0))}else h[n]=t[n]}));for(const n of Object.getOwnPropertySymbols(t))h[n]=t[n];return h},hook(e,t,...n){var i;return(null!==(i=e.object)&&void 0!==i?i:e.base).call(e,{node:this,fields:v,config:null!=p?p:{},filter:_,cases:b,getActiveFields:y,getChildModelPath:w},t,...n)}})}}(ft);var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.Reference=void 0,gt.Reference=(e,t)=>({type(n){return e.get(t).type.bind(this)(n)},category(n){return e.get(t).category.bind(this)(n)},default(){return e.get(t).default.bind(this)()},transform:(n,i)=>e.get(t).transform(n,i),enabled(n){return e.get(t).enabled.bind(this)(n)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(n,i){return e.get(t).navigate.bind(this)(n,i)},pathPush(n,i){return e.get(t).pathPush.bind(this)(n,i)},suggest(n,i){return e.get(t).suggest.bind(this)(n,i)},validate(n,i,r,o){return e.get(t).validate.bind(this)(n,i,r,o)},validationOption(n){return e.get(t).validationOption.bind(this)(n)},hook(n,i,...r){return e.get(t).hook.bind(this)(n,i,...r)},activeCase(n,i){return e.get(t).activeCase.bind(this)(n,i)},canUpdate(n,i){return e.get(t).canUpdate.bind(this)(n,i)},update(n,i){return e.get(t).update.bind(this)(n,i)}});var _t={};Object.defineProperty(_t,"__esModule",{value:!0}),_t.StringNode=void 0;const bt=tt,vt=qe,yt=ze,wt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},xt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};_t.StringNode=(e,t)=>{const n=()=>{var n,i,r,o;if(wt(t))return"string"==typeof t.enum?null!==(n=null==e?void 0:e.get(t.enum))&&void 0!==n?n:[]:t.enum;if("resource"===(null==t?void 0:t.validator)){if("string"==typeof t.params.pool){if(t.params.requireTag)return null!==(i=null==e?void 0:e.get(`tag/${t.params.pool}`).map((e=>`#${e}`)))&&void 0!==i?i:[];const n=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag&&null!==(r=null==e?void 0:e.get(`tag/${n}`).map((e=>`#${e}`)))&&void 0!==r?r:[],...null!==(o=null==e?void 0:e.get(n))&&void 0!==o?o:[]]}return t.params.pool}return[]};return c(s({},bt.Base),{type:()=>"string",default:()=>"",validate(e,i,r,o){if(o.loose&&"string"!=typeof i&&(i=(o.wrapLists?yt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof i)return r.add(e,"error.expected_string"),i;if(xt(t)){if("resource"===t.validator&&i.length>0&&!i.includes(":")&&(i=i.startsWith("#")?"#minecraft:"+i.slice(1):"minecraft:"+i),"resource"===t.validator&&"string"==typeof i){let n=i;if(i.startsWith("#")){if("string"==typeof t.params.pool&&t.params.pool.startsWith("$tag/"))return r.add(e,"error.disallowed_tag_prefix"),i;if(!t.params.allowTag&&!t.params.requireTag)return r.add(e,"error.disallowed_tag"),i;n=n.slice(1)}else if(t.params.requireTag)return r.add(e,"error.expected_tag"),i;if(!n.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return r.add(e,"error.invalid_resource_location"),i}if("resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&i.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return i}if(wt(t)&&t.additional)return i;const a=n();return a.length>0&&!a.includes(i)&&r.add(e,"error.invalid_enum_option",i),i},suggest:()=>n().map(vt.quoteString),validationOption:()=>xt(t)?t:void 0,hook(e,i,...r){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:n,config:t},i,...r)}})};var At={};Object.defineProperty(At,"__esModule",{value:!0});var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.CollectionRegistry=Nt.SchemaRegistry=void 0;Nt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};Nt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var kt={};Object.defineProperty(kt,"__esModule",{value:!0}),function(e){var t=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),n=je&&je.__exportStar||function(e,n){for(var i in e)"default"===i||n.hasOwnProperty(i)||t(n,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(ze,e),n(Ue,e),n(Ve,e),n(tt,e),n(nt,e),n(ot,e),n(at,e),n(dt,e),n(mt,e),n(ft,e),n(gt,e),n(_t,e),n(lt,e),n(At,e),n(Nt,e),n(kt,e)}(Pe);var Ct=function(e){return(e=e||{}).circles?function(e){var t=[],n=[];return e.proto?function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return i(r,e);if(r instanceof Map)return new Map(i(Array.from(r),e));if(r instanceof Set)return new Set(i(Array.from(r),e));var o={};for(var a in t.push(r),n.push(o),r){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(i(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(i(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Et(s);else{var c=t.indexOf(s);o[a]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o}:function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return i(r,e);if(r instanceof Map)return new Map(i(Array.from(r),e));if(r instanceof Set)return new Set(i(Array.from(r),e));var o={};for(var a in t.push(r),n.push(o),r)if(!1!==Object.hasOwnProperty.call(r,a)){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(i(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(i(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Et(s);else{var c=t.indexOf(s);o[a]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o};function i(e,i){for(var r=Object.keys(e),o=new Array(r.length),a=0;a-1},i=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},r=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},o=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(e){this.pending.push(e),this.flush()},a.prototype.flush=function(){0===this.count&&(this.pending.forEach((function(e){e()})),this.pending=[])};var s=function(e){this.sem=new a,this.sync=e&&e.sync,this.mapForUri=e&&e.cacheGlobally?t:{}};s.prototype.ajax=function(e,t){var n=function(){for(var e=!1,t=0;t/)||_.fetchScript(h));_.sem.whenReady((function(){var e=l(c,g,_.mapForUri,b);t(e)}))}}}.apply(t,i))||(e.exports=r)},function(e,t,n){var i=n(2),r=n(3),o=n(4).ArraySet,a=n(5),s=n(7).quickSort;function c(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new d(t):new l(t)}function l(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=i.getArg(t,"version"),r=i.getArg(t,"sources"),a=i.getArg(t,"names",[]),s=i.getArg(t,"sourceRoot",null),c=i.getArg(t,"sourcesContent",null),l=i.getArg(t,"mappings"),u=i.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(i.normalize).map((function(e){return s&&i.isAbsolute(s)&&i.isAbsolute(e)?i.relative(s,e):e})),this._names=o.fromArray(a.map(String),!0),this._sources=o.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=c,this._mappings=l,this.file=u}function u(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=i.getArg(t,"version"),r=i.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new o,this._names=new o;var a={line:-1,column:0};this._sections=r.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=i.getArg(e,"offset"),n=i.getArg(t,"line"),r=i.getArg(t,"column");if(n=0){var s=this._originalMappings[a];if(void 0===e.column)for(var c=s.originalLine;s&&s.originalLine===c;)o.push({line:i.getArg(s,"generatedLine",null),column:i.getArg(s,"generatedColumn",null),lastColumn:i.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)o.push({line:i.getArg(s,"generatedLine",null),column:i.getArg(s,"generatedColumn",null),lastColumn:i.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return o},t.SourceMapConsumer=c,l.prototype=Object.create(c.prototype),l.prototype.consumer=c,l.fromSourceMap=function(e){var t=Object.create(l.prototype),n=t._names=o.fromArray(e._names.toArray(),!0),r=t._sources=o.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),c=t.__generatedMappings=[],d=t.__originalMappings=[],h=0,p=a.length;h1&&(n.source=f+o[1],f+=o[1],n.originalLine=p+o[2],p=n.originalLine,n.originalLine+=1,n.originalColumn=m+o[3],m=n.originalColumn,o.length>4&&(n.name=g+o[4],g+=o[4])),x.push(n),"number"==typeof n.originalLine&&w.push(n)}s(x,i.compareByGeneratedPositionsDeflated),this.__generatedMappings=x,s(w,i.compareByOriginalPositions),this.__originalMappings=w},l.prototype._findMapping=function(e,t,n,i,o,a){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[i]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[i]);return r.search(e,t,o,a)},l.prototype.computeColumnSpans=function(){for(var e=0;e=0){var r=this._generatedMappings[n];if(r.generatedLine===t.generatedLine){var o=i.getArg(r,"source",null);null!==o&&(o=this._sources.at(o),null!=this.sourceRoot&&(o=i.join(this.sourceRoot,o)));var a=i.getArg(r,"name",null);return null!==a&&(a=this._names.at(a)),{source:o,line:i.getArg(r,"originalLine",null),column:i.getArg(r,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},l.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=i.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=i.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(e){var t=i.getArg(e,"source");if(null!=this.sourceRoot&&(t=i.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var n={source:t=this._sources.indexOf(t),originalLine:i.getArg(e,"line"),originalColumn:i.getArg(e,"column")},r=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions,i.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(r>=0){var o=this._originalMappings[r];if(o.source===n.source)return{line:i.getArg(o,"generatedLine",null),column:i.getArg(o,"generatedColumn",null),lastColumn:i.getArg(o,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=l,d.prototype=Object.create(c.prototype),d.prototype.constructor=c,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t=0;u--)"."===(a=c[u])?c.splice(u,1):".."===a?l++:l>0&&(""===a?(c.splice(u+1,l),l=0):(c.splice(u,2),l--));return""===(n=c.join("/"))&&(n=s?"/":"."),i?(i.path=n,o(i)):n}t.urlParse=r,t.urlGenerate=o,t.normalize=a,t.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var n=r(t),s=r(e);if(s&&(e=s.path||"/"),n&&!n.scheme)return s&&(n.scheme=s.scheme),o(n);if(n||t.match(i))return t;if(s&&!s.host&&!s.path)return s.host=t,o(s);var c="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,o(s)):c},t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(n)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var i=e.lastIndexOf("/");if(i<0)return t;if((e=e.slice(0,i)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var s=!("__proto__"in Object.create(null));function c(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}t.toSetString=s?c:function(e){return l(e)?"$"+e:e},t.fromSetString=s?c:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,n){var i=e.source-t.source;return 0!==i||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)||n||0!=(i=e.generatedColumn-t.generatedColumn)||0!=(i=e.generatedLine-t.generatedLine)?i:e.name-t.name},t.compareByGeneratedPositionsDeflated=function(e,t,n){var i=e.generatedLine-t.generatedLine;return 0!==i||0!=(i=e.generatedColumn-t.generatedColumn)||n||0!=(i=e.source-t.source)||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:e.name-t.name},t.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||0!==(n=u(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:u(e.name,t.name)}},function(e,t){function n(e,i,r,o,a,s){var c=Math.floor((i-e)/2)+e,l=a(r,o[c],!0);return 0===l?c:l>0?i-c>1?n(c,i,r,o,a,s):s==t.LEAST_UPPER_BOUND?i1?n(e,c,r,o,a,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,i,r,o){if(0===i.length)return-1;var a=n(-1,i.length,e,i,r,o||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===r(i[a],i[a-1],!0);)--a;return a}},function(e,t,n){var i=n(2),r=Object.prototype.hasOwnProperty;function o(){this._array=[],this._set=Object.create(null)}o.fromArray=function(e,t){for(var n=new o,i=0,r=e.length;i=0&&e>>=5)>0&&(t|=32),n+=i.encode(t)}while(r>0);return n},t.decode=function(e,t,n){var r,o,a,s,c=e.length,l=0,u=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(o=i.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(32&o),l+=(o&=31)<>1,1==(1&a)?-s:s),n.rest=t}},function(e,t){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,n,i;return void 0===e?0:null!==(i=null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:e.n)&&void 0!==i?i:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,n;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(Lt);var Mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Pe,n=Lt;e.initPredicatesSchemas=function(i,r){const o=t.Reference.bind(void 0,i),a=t.StringNode.bind(void 0,r),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);i.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(n.Range()),durability:t.Opt(n.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),i.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(n.Range())},{context:"enchantment"})),i.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),i.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(n.Range()),y:t.Opt(n.Range()),z:t.Opt(n.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(n.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},i.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),i.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:n.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),i.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(n.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),i.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(n.Range()),duration:t.Opt(n.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),i.register("distance_predicate",t.ObjectNode({x:t.Opt(n.Range()),y:t.Opt(n.Range()),z:t.Opt(n.Range()),absolute:t.Opt(n.Range()),horizontal:t.Opt(n.Range())},{context:"distance"})),i.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),i.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),i.register("damage_predicate",t.ObjectNode({dealt:t.Opt(n.Range()),taken:t.Opt(n.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Mt),Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.initAdvancementSchemas=void 0;const Tt=Pe,Rt=Lt,$t=Mt;Bt.initAdvancementSchemas=function(e,t){const n=Tt.Reference.bind(void 0,e),i=Tt.StringNode.bind(void 0,t);e.register("advancement",Tt.Mod(Tt.ObjectNode({display:Tt.Opt(Tt.Mod(Tt.ObjectNode({icon:Tt.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:Tt.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:n("text_component"),description:n("text_component"),background:Tt.Opt(i()),frame:Tt.Opt(i({enum:["task","challenge","goal"]})),show_toast:Tt.Opt(Tt.BooleanNode()),announce_to_chat:Tt.Opt(Tt.BooleanNode()),hidden:Tt.Opt(Tt.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Tt.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:Tt.MapNode(i(),n("advancement_criteria")),requirements:Tt.Opt(Tt.ListNode(Tt.ListNode(i()))),rewards:Tt.Opt(Tt.ObjectNode({function:Tt.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:Tt.Opt(Tt.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Tt.Opt(Tt.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:Tt.Opt(Tt.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Tt.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Tt.Opt(Tt.ObjectNode({[Tt.Switch]:["pop",{push:"trigger"}],[Tt.Case]:{"minecraft:bee_nest_destroyed":{block:Tt.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:Tt.Opt(Tt.NumberNode({integer:!0})),item:Tt.Opt(n("item_predicate"))},"minecraft:bred_animals":{parent:Tt.Opt(n("entity_predicate")),partner:Tt.Opt(n("entity_predicate")),child:Tt.Opt(n("entity_predicate"))},"minecraft:brewed_potion":{potion:Tt.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Tt.Opt(i({enum:"dimension"})),to:Tt.Opt(i({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Tt.Opt(Tt.ListNode(Tt.Opt(n("entity_predicate"))))},"minecraft:construct_beacon":{level:Tt.Opt(Rt.Range())},"minecraft:consume_item":{item:Tt.Opt(n("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Tt.Opt(n("entity_predicate")),zombie:Tt.Opt(n("entity_predicate"))},"minecraft:effects_changed":{effects:Tt.Opt(Tt.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},"minecraft:enter_block":{block:Tt.Opt(i({validator:"resource",params:{pool:"block"}})),state:Tt.Opt(Tt.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Tt.Opt(Rt.Range()),item:Tt.Opt(n("item_predicate"))},"minecraft:entity_hurt_player":{damage:Tt.Opt(n("damage_predicate"))},"minecraft:entity_killed_player":{entity:Tt.Opt(n("entity_predicate")),killing_blow:Tt.Opt(n("damage_source_predicate"))},"minecraft:filled_bucket":{item:Tt.Opt(n("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Tt.Opt(n("entity_predicate")),item:Tt.Opt(n("item_predicate"))},"minecraft:hero_of_the_village":$t.LocationFields,"minecraft:inventory_changed":{slots:Tt.Opt(Tt.ObjectNode({empty:Tt.Opt(Rt.Range()),occupied:Tt.Opt(Rt.Range()),full:Tt.Opt(Rt.Range())})),items:Tt.Opt(Tt.ListNode(n("item_predicate")))},"minecraft:item_durability_changed":{delta:Tt.Opt(Rt.Range()),durability:Tt.Opt(Rt.Range()),item:Tt.Opt(n("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Tt.Opt(Rt.Range()),victims:Tt.Opt(Tt.ListNode(Tt.Opt(n("entity_predicate"))))},"minecraft:levitation":{distance:Tt.Opt(Rt.Range()),duration:Tt.Opt(Rt.Range())},"minecraft:location":$t.LocationFields,"minecraft:nether_travel":{distance:Tt.Opt(Rt.Range()),entered:Tt.Opt(n("location_predicate")),exited:Tt.Opt(n("location_predicate"))},"minecraft:placed_block":{block:Tt.Opt(i({validator:"resource",params:{pool:"block"}})),state:Tt.Opt(Tt.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Tt.Opt(n("item_predicate")),location:Tt.Opt(n("location_predicate"))},"minecraft:player_hurt_entity":{damage:Tt.Opt(n("damage_predicate")),entity:Tt.Opt(n("entity_predicate"))},"minecraft:player_killed_entity":{entity:Tt.Opt(n("entity_predicate")),killing_blow:Tt.Opt(n("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Tt.Opt(Tt.ObjectNode({block:Tt.Opt(i({validator:"resource",params:{pool:"block"}})),tag:Tt.Opt(i({validator:"resource",params:{pool:"$tag/block"}}))})),item:Tt.Opt(n("item_predicate"))},"minecraft:slept_in_bed":$t.LocationFields,"minecraft:slide_down_block":{block:Tt.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Tt.Opt(n("item_predicate"))},"minecraft:summoned_entity":{entity:Tt.Opt(n("entity_predicate"))},"minecraft:tame_animal":{entity:Tt.Opt(n("entity_predicate"))},"minecraft:used_ender_eye":{distance:Tt.Opt(Rt.Range())},"minecraft:used_totem":{item:Tt.Opt(n("item_predicate"))},"minecraft:villager_trade":{villager:Tt.Opt(n("entity_predicate")),item:Tt.Opt(n("item_predicate"))},"minecraft:voluntary_exile":$t.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var It={},jt={};Object.defineProperty(jt,"__esModule",{value:!0}),jt.initModelSchemas=void 0;const Pt=Pe;jt.initModelSchemas=function(e,t){Pt.Reference.bind(void 0,e);const n=Pt.StringNode.bind(void 0,t),i=(e,t,n)=>Pt.ListNode(Pt.NumberNode({min:t,max:n}),{minLength:e,maxLength:e}),r=Pt.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:n(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:n({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Pt.Mod(Pt.ObjectNode({parent:Pt.Opt(n({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Pt.Opt(Pt.BooleanNode()),gui_light:Pt.Opt(n({enum:"gui_light"})),textures:Pt.Opt(Pt.MapNode(n(),r)),elements:Pt.Opt(Pt.ListNode(Pt.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:Pt.Opt(Pt.ObjectNode({origin:i(3),axis:n({enum:"axis"}),angle:Pt.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Pt.Opt(Pt.BooleanNode())})),shade:Pt.Opt(Pt.BooleanNode()),faces:Pt.MapNode(n({enum:"direction"}),Pt.ObjectNode({texture:r,uv:Pt.Opt(i(4)),cullface:Pt.Opt(n({enum:"direction"})),rotation:Pt.Opt(Pt.NumberNode({integer:!0})),tintindex:Pt.Opt(Pt.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Pt.Opt(Pt.MapNode(n({enum:"display_position"}),Pt.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:Pt.Opt(Pt.ListNode(Pt.ObjectNode({predicate:Pt.MapNode(n({enum:"item_model_predicates"}),Pt.NumberNode()),model:n({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initBlockDefinitionSchemas=void 0;const Ut=Pe;zt.initBlockDefinitionSchemas=function(e,t){const n=Ut.Reference.bind(void 0,e),i=Ut.StringNode.bind(void 0,t);e.register("block_definition",Ut.Mod(Ut.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Ut.ObjectNode({variants:Ut.MapNode(i(),n("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Ut.ObjectNode({multipart:Ut.ListNode(Ut.ObjectNode({when:Ut.Opt(n("multipart_condition")),apply:n("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:i({validator:"resource",params:{pool:"$model"}}),x:Ut.Opt(Ut.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Ut.Opt(Ut.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Ut.Opt(Ut.BooleanNode())};e.register("model_variant",Ut.ChoiceNode([{type:"object",node:Ut.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Ut.ListNode(Ut.ObjectNode(c(s({},r),{weight:Ut.Opt(Ut.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Ut.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Ut.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Ut.ObjectNode({OR:Ut.ListNode(n("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(It,"__esModule",{value:!0}),It.initAssetsSchemas=void 0;const Wt=jt,Ht=zt;It.initAssetsSchemas=function(e,t){Ht.initBlockDefinitionSchemas(e,t),Wt.initModelSchemas(e,t)};var Vt={};Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.initConditionSchemas=void 0;const Gt=Pe,qt=Lt;Vt.initConditionSchemas=function(e,t){const n=Gt.Reference.bind(void 0,e),i=Gt.StringNode.bind(void 0,t);e.register("predicate",Gt.ObjectOrList(n("condition"),{choiceContext:"condition"})),e.register("condition",Gt.Mod(Gt.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Gt.Switch]:[{push:"condition"}],[Gt.Case]:qt.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Kt={},Xt={};Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.LootFunctions=Xt.LootConditions=Xt.LootCopySources=Xt.LootEntitySources=Xt.LootTableTypes=void 0,Xt.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Xt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Xt.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Kt,"__esModule",{value:!0}),Kt.initLootTableSchemas=void 0;const Jt=Pe,Yt=Xt,Zt=Lt;Kt.initLootTableSchemas=function(e,t){const n=Jt.Reference.bind(void 0,e),i=Jt.StringNode.bind(void 0,t),r={conditions:Jt.Opt(Jt.ListNode(n("loot_condition")))},o=s({functions:Jt.Opt(Jt.ListNode(n("loot_function")))},r);function a(e,n,i){const r=[],o=i=>t.get(n).filter((t=>{var n;return(null!==(n=e.get(t))&&void 0!==n?n:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Yt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Jt.Path(["type"]))===t,node:i(o(e))})}return r.push({match:e=>!0,node:i(n)}),Jt.SwitchNode(r)}const l=a(Yt.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Yt.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Yt.LootEntitySources,"entity_source",(e=>i({enum:e}))),h=a(Yt.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Jt.Mod(Jt.ObjectNode({type:Jt.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Jt.Opt(Jt.ListNode(Jt.Mod(Jt.ObjectNode(s({rolls:Zt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Jt.Opt(Zt.Range({integer:!0})),entries:Jt.ListNode(n("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Jt.Opt(Jt.ListNode(n("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Jt.Mod(Jt.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0,min:1}),p)),quality:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0}),p)),[Jt.Switch]:[{push:"type"}],[Jt.Case]:{"minecraft:alternatives":s({children:Jt.ListNode(n("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Jt.ListNode(n("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Jt.ListNode(n("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Jt.Opt(Jt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Jt.Mod(Jt.ObjectNode({function:u,[Jt.Switch]:[{push:"function"}],[Jt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Jt.Mod(Jt.ObjectNode({bonusMultiplier:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Jt.ListNode(Jt.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:Jt.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Jt.Opt(Jt.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Zt.Range({allowBinomial:!0}),treasure:Jt.Opt(Jt.BooleanNode())},"minecraft:exploration_map":{destination:Jt.Opt(i({enum:"structure_feature"})),decoration:Jt.Opt(i({enum:"map_decoration"})),zoom:Jt.Opt(Jt.NumberNode({integer:!0})),search_radius:Jt.Opt(Jt.NumberNode({integer:!0})),skip_existing_chunks:Jt.Opt(Jt.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Zt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Zt.Range({bounds:!0}),limit:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Jt.ListNode(n("attribute_modifier"))},"minecraft:set_contents":{entries:Jt.ListNode(n("loot_entry"))},"minecraft:set_count":{count:Zt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Zt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Jt.Opt(d),lore:Jt.ListNode(n("text_component")),replace:Jt.Opt(Jt.BooleanNode())},"minecraft:set_name":{entity:Jt.Opt(d),name:Jt.Opt(n("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Jt.Opt(Jt.ListNode(Jt.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:Zt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Jt.Mod(Jt.ObjectNode({condition:l,[Jt.Switch]:[{push:"condition"}],[Jt.Case]:c(s({},Zt.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Jt.MapNode(i({validator:"objective"}),Zt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Jt.Mod(Jt.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:Zt.Range({bounds:!0}),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Jt.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0}),Qt.initPackMcmetaSchemas=void 0;const en=Pe;Qt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",en.Mod(en.ObjectNode({pack:en.Mod(en.ObjectNode({pack_format:en.Mod(en.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:en.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initRecipeSchemas=void 0;const nn=Pe;tn.initRecipeSchemas=function(e,t){const n=nn.Reference.bind(void 0,e),i=nn.StringNode.bind(void 0,t);e.register("recipe",nn.Mod(nn.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[nn.Switch]:[{push:"type"}],[nn.Case]:{"minecraft:crafting_shaped":{group:nn.Opt(i({enum:"recipe_group",additional:!0})),pattern:nn.ListNode(i()),key:nn.MapNode(i(),n("recipe_ingredient")),result:n("recipe_result")},"minecraft:crafting_shapeless":{group:nn.Opt(i()),ingredients:nn.ListNode(n("recipe_ingredient")),result:n("recipe_result")},"minecraft:smelting":{group:nn.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:nn.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:nn.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:nn.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:nn.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:nn.NumberNode({integer:!0})},"minecraft:smithing":{group:nn.Opt(i()),base:n("recipe_ingredient_object"),addition:n("recipe_ingredient_object"),result:n("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",nn.Mod(nn.ChoiceNode([{type:"object",node:n("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:nn.ListNode(n("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",nn.Mod(nn.ObjectNode({item:nn.Opt(i({validator:"resource",params:{pool:"item"}})),tag:nn.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",nn.Mod(nn.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initTagsSchemas=void 0;const on=Pe;rn.initTagsSchemas=function(e,t){const n=on.StringNode.bind(void 0,t),i=e=>on.Mod(on.ObjectNode({replace:on.Opt(on.BooleanNode()),values:on.ListNode(on.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:on.ObjectNode({id:n({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:on.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("item_tag",i("item"))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initTextComponentSchemas=void 0;const sn=Pe;an.initTextComponentSchemas=function(e,t){const n=sn.Reference.bind(void 0,e),i=sn.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",sn.Mod(sn.ChoiceNode([{type:"object",node:n("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:n("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:r},{type:"number",node:sn.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:sn.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:sn.Opt(sn.BooleanNode()),italic:sn.Opt(sn.BooleanNode()),underlined:sn.Opt(sn.BooleanNode()),strikethrough:sn.Opt(sn.BooleanNode()),obfuscated:sn.Opt(sn.BooleanNode()),insertion:sn.Opt(i()),clickEvent:sn.Opt(sn.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:sn.Opt(sn.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{show_text:{value:sn.Opt(n("text_component"))},show_item:{value:sn.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:sn.Opt(sn.ObjectNode({name:sn.Opt(i()),type:sn.Opt(i()),id:sn.Opt(i())}))}}})),extra:sn.Opt(n("text_component_list"))};e.register("text_component_object",sn.Mod(sn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:sn.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:sn.ObjectNode(s({translate:i(),with:sn.Opt(n("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:sn.ObjectNode(s({score:sn.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:sn.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:sn.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:sn.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:sn.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:sn.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:sn.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:sn.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:sn.Opt(sn.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",sn.Mod(sn.ListNode(n("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.initSchemas=void 0;const cn=Bt,ln=It,un=Lt,dn=Vt,hn=Kt,pn=Qt,mn=Mt,fn=tn,gn=rn,_n=an;Dt.initSchemas=function(e,t){un.initCommonSchemas(e,t),mn.initPredicatesSchemas(e,t),cn.initAdvancementSchemas(e,t),ln.initAssetsSchemas(e,t),dn.initConditionSchemas(e,t),hn.initLootTableSchemas(e,t),pn.initPackMcmetaSchemas(e,t),fn.initRecipeSchemas(e,t),gn.initTagsSchemas(e,t),_n.initTextComponentSchemas(e,t)};var bn=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),vn=je&&je.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),yn=je&&je.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&bn(t,e,n);return vn(t,e),t};Object.defineProperty(Ot,"__esModule",{value:!0});var wn=Ot.getSchemas=Ot.getCollections=void 0;const xn=Pe,An=Ft,Nn=Dt;var kn=Ot.lootContext=yn(Xt);var Cn=Ot.getCollections=function(){const e=new xn.CollectionRegistry;return An.initCollections(e),e};wn=Ot.getSchemas=function(e){const t=new xn.SchemaRegistry;return Nn.initSchemas(t,e),t};var En=Object.freeze(Object.assign(Object.create(null),Ot,{[Symbol.toStringTag]:"Module",get getSchemas(){return wn},get getCollections(){return Cn},lootContext:kn,default:Ot})),Sn={},On={};Object.defineProperty(On,"__esModule",{value:!0}),On.initCollections=void 0,On.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var Fn={},Dn={},Bn={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(n,i){const r=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,n,i;return void 0===e?0:null!==(i=null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:e.n)&&void 0!==i?i:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,n;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),n,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Bn),Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initAdvancementSchemas=void 0;const Ln=Pe,Mn=Bn;Dn.initAdvancementSchemas=function(e,t){const n=Ln.Reference.bind(void 0,e),i=Ln.StringNode.bind(void 0,t),r=Ln.ChoiceNode([{type:"object",node:Ln.Opt(n("entity_predicate")),change:e=>{var t,n;return null!==(n=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==n?n:{}}},{type:"list",node:Ln.ListNode(n("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ln.Mod(Ln.ObjectNode({display:Ln.Opt(Ln.Mod(Ln.ObjectNode({icon:Ln.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:Ln.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:n("text_component"),description:n("text_component"),background:Ln.Opt(i()),frame:Ln.Opt(i({enum:["task","challenge","goal"]})),show_toast:Ln.Opt(Ln.BooleanNode()),announce_to_chat:Ln.Opt(Ln.BooleanNode()),hidden:Ln.Opt(Ln.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ln.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:Ln.MapNode(i(),n("advancement_criteria")),requirements:Ln.Opt(Ln.ListNode(Ln.ListNode(i()))),rewards:Ln.Opt(Ln.ObjectNode({function:Ln.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:Ln.Opt(Ln.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ln.Opt(Ln.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:Ln.Opt(Ln.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ln.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ln.Opt(Ln.ObjectNode({player:Ln.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ln.Switch]:["pop",{push:"trigger"}],[Ln.Case]:{"minecraft:bee_nest_destroyed":{block:Ln.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ln.Opt(Ln.NumberNode({integer:!0})),item:Ln.Opt(n("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:Ln.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ln.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:Ln.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ln.Opt(Ln.ListNode(r))},"minecraft:construct_beacon":{level:Ln.Opt(Mn.Range())},"minecraft:consume_item":{item:Ln.Opt(n("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:Ln.Opt(Ln.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},"minecraft:enter_block":{block:Ln.Opt(i({validator:"resource",params:{pool:"block"}})),state:Ln.Opt(Ln.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ln.Opt(Mn.Range()),item:Ln.Opt(n("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ln.Opt(n("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:Ln.Opt(n("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ln.Opt(n("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:Ln.Opt(n("item_predicate"))},"minecraft:hero_of_the_village":{location:Ln.Opt(n("location_predicate"))},"minecraft:inventory_changed":{slots:Ln.Opt(Ln.ObjectNode({empty:Ln.Opt(Mn.Range()),occupied:Ln.Opt(Mn.Range()),full:Ln.Opt(Mn.Range())})),items:Ln.Opt(Ln.ListNode(n("item_predicate")))},"minecraft:item_durability_changed":{delta:Ln.Opt(Mn.Range()),durability:Ln.Opt(Mn.Range()),item:Ln.Opt(n("item_predicate"))},"minecraft:item_used_on_block":{item:Ln.Opt(n("item_predicate")),location:Ln.Opt(n("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ln.Opt(Mn.Range()),victims:Ln.Opt(Ln.ListNode(r))},"minecraft:levitation":{distance:Ln.Opt(Mn.Range()),duration:Ln.Opt(Mn.Range())},"minecraft:location":{location:Ln.Opt(n("location_predicate"))},"minecraft:nether_travel":{distance:Ln.Opt(Mn.Range()),entered:Ln.Opt(n("location_predicate")),exited:Ln.Opt(n("location_predicate"))},"minecraft:placed_block":{block:Ln.Opt(i({validator:"resource",params:{pool:"block"}})),state:Ln.Opt(Ln.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ln.Opt(n("item_predicate")),location:Ln.Opt(n("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ln.Opt(n("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:Ln.Opt(n("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:Ln.Opt(n("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Ln.Opt(n("location_predicate"))},"minecraft:slide_down_block":{block:Ln.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ln.Opt(n("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:Ln.Opt(Mn.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Ln.Opt(n("entity_predicate")),item:Ln.Opt(n("item_predicate"))},"minecraft:used_ender_eye":{distance:Ln.Opt(Mn.Range())},"minecraft:used_totem":{item:Ln.Opt(n("item_predicate"))},"minecraft:villager_trade":{villager:Ln.Opt(n("entity_predicate")),item:Ln.Opt(n("item_predicate"))},"minecraft:voluntary_exile":{location:n("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Tn={},Rn={};Object.defineProperty(Rn,"__esModule",{value:!0}),Rn.initModelSchemas=void 0;const $n=Pe;Rn.initModelSchemas=function(e,t){$n.Reference.bind(void 0,e);const n=$n.StringNode.bind(void 0,t),i=(e,t,n)=>$n.ListNode($n.NumberNode({min:t,max:n}),{minLength:e,maxLength:e}),r=$n.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:n(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:n({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",$n.Mod($n.ObjectNode({parent:$n.Opt(n({validator:"resource",params:{pool:"$model"}})),ambientocclusion:$n.Opt($n.BooleanNode()),gui_light:$n.Opt(n({enum:"gui_light"})),textures:$n.Opt($n.MapNode(n(),r)),elements:$n.Opt($n.ListNode($n.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:$n.Opt($n.ObjectNode({origin:i(3),axis:n({enum:"axis"}),angle:$n.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:$n.Opt($n.BooleanNode())})),shade:$n.Opt($n.BooleanNode()),faces:$n.MapNode(n({enum:"direction"}),$n.ObjectNode({texture:r,uv:$n.Opt(i(4)),cullface:$n.Opt(n({enum:"direction"})),rotation:$n.Opt($n.NumberNode({integer:!0})),tintindex:$n.Opt($n.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:$n.Opt($n.MapNode(n({enum:"display_position"}),$n.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:$n.Opt($n.ListNode($n.ObjectNode({predicate:$n.MapNode(n({enum:"item_model_predicates"}),$n.NumberNode()),model:n({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var In={};Object.defineProperty(In,"__esModule",{value:!0}),In.initBlockDefinitionSchemas=void 0;const jn=Pe;In.initBlockDefinitionSchemas=function(e,t){const n=jn.Reference.bind(void 0,e),i=jn.StringNode.bind(void 0,t);e.register("block_definition",jn.Mod(jn.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:jn.ObjectNode({variants:jn.MapNode(i(),n("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:jn.ObjectNode({multipart:jn.ListNode(jn.ObjectNode({when:jn.Opt(n("multipart_condition")),apply:n("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:i({validator:"resource",params:{pool:"$model"}}),x:jn.Opt(jn.NumberEnum({integer:!0,values:[0,90,180,270]})),y:jn.Opt(jn.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:jn.Opt(jn.BooleanNode())};e.register("model_variant",jn.ChoiceNode([{type:"object",node:jn.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:jn.ListNode(jn.ObjectNode(c(s({},r),{weight:jn.Opt(jn.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",jn.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:jn.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:jn.ObjectNode({OR:jn.ListNode(n("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.initAssetsSchemas=void 0;const Pn=Rn,zn=In;Tn.initAssetsSchemas=function(e,t){zn.initBlockDefinitionSchemas(e,t),Pn.initModelSchemas(e,t)};var Un={};Object.defineProperty(Un,"__esModule",{value:!0}),Un.initConditionSchemas=void 0;const Wn=Pe,Hn=Bn;Un.initConditionSchemas=function(e,t){const n=Wn.Reference.bind(void 0,e),i=Wn.StringNode.bind(void 0,t);e.register("predicate",Wn.ObjectOrList(n("condition"),{choiceContext:"condition"})),e.register("condition",Wn.Mod(Wn.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Wn.Switch]:[{push:"condition"}],[Wn.Case]:Hn.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Vn={};Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.initDimensionSchemas=void 0;const Gn=Pe,qn=Bn;Vn.initDimensionSchemas=function(e,t){const n=Gn.Reference.bind(void 0,e),i=Gn.StringNode.bind(void 0,t),r=e=>Gn.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Gn.Mod(Gn.ObjectNode({type:qn.DimensionTypePresets(n("dimension_type")),generator:Gn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Gn.Switch]:[{push:"type"}],[Gn.Case]:{"minecraft:noise":{seed:Gn.NumberNode({integer:!0}),settings:qn.NoiseSettingsPresets(n("noise_settings")),biome_source:Gn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Gn.Switch]:[{push:"type"}],[Gn.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Gn.NumberNode({integer:!0}),preset:Gn.Opt(i({enum:["nether"]})),altitude_noise:r(n("generator_biome_noise")),temperature_noise:r(n("generator_biome_noise")),humidity_noise:r(n("generator_biome_noise")),weirdness_noise:r(n("generator_biome_noise")),biomes:r(Gn.Mod(Gn.ListNode(n("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Gn.Opt(Gn.NumberNode({integer:!0,min:0,max:62})),biomes:Gn.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Gn.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Gn.NumberNode({integer:!0}),large_biomes:Gn.Opt(Gn.BooleanNode()),legacy_biome_init_layer:Gn.Opt(Gn.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Gn.ObjectNode({biome:Gn.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Gn.Opt(Gn.BooleanNode()),features:Gn.Opt(Gn.BooleanNode()),layers:Gn.ListNode(n("generator_layer")),structures:n("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Gn.Mod(Gn.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Gn.ObjectNode({altitude:Gn.NumberNode(),temperature:Gn.NumberNode(),humidity:Gn.NumberNode(),weirdness:Gn.NumberNode(),offset:Gn.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Gn.Mod(Gn.ObjectNode({firstOctave:Gn.NumberNode({integer:!0}),amplitudes:Gn.ListNode(Gn.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Kn={};Object.defineProperty(Kn,"__esModule",{value:!0}),Kn.initDimensionTypeSchemas=void 0;const Xn=Pe,Jn=Bn;Kn.initDimensionTypeSchemas=function(e,t){const n=Xn.StringNode.bind(void 0,t);e.register("dimension_type",Xn.Mod(Xn.ObjectNode({name:Xn.Mod(n({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Xn.BooleanNode(),natural:Xn.BooleanNode(),piglin_safe:Xn.BooleanNode(),respawn_anchor_works:Xn.BooleanNode(),bed_works:Xn.BooleanNode(),has_raids:Xn.BooleanNode(),has_skylight:Xn.BooleanNode(),has_ceiling:Xn.BooleanNode(),coordinate_scale:Xn.NumberNode({min:1e-5,max:3e7}),ambient_light:Xn.NumberNode(),fixed_time:Xn.Opt(Xn.NumberNode({integer:!0})),logical_height:Xn.NumberNode({integer:!0,min:0,max:256}),effects:Xn.Opt(n({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:n({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Jn.DefaultDimensionType}))};var Yn={},Zn={};Object.defineProperty(Zn,"__esModule",{value:!0}),Zn.LootFunctions=Zn.LootConditions=Zn.LootCopySources=Zn.LootEntitySources=Zn.LootTableTypes=void 0,Zn.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Zn.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Zn.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Zn.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Zn.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.initLootTableSchemas=void 0;const Qn=Pe,ei=Zn,ti=Bn;Yn.initLootTableSchemas=function(e,t){const n=Qn.Reference.bind(void 0,e),i=Qn.StringNode.bind(void 0,t),r={conditions:Qn.Opt(Qn.ListNode(n("loot_condition")))},o=s({functions:Qn.Opt(Qn.ListNode(n("loot_function")))},r);function a(e,n,i){const r=[],o=i=>t.get(n).filter((t=>{var n;return(null!==(n=e.get(t))&&void 0!==n?n:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of ei.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Qn.Path(["type"]))===t,node:i(o(e))})}return r.push({match:e=>!0,node:i(n)}),Qn.SwitchNode(r)}const l=a(ei.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(ei.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(ei.LootEntitySources,"entity_source",(e=>i({enum:e}))),h=a(ei.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Qn.Mod(Qn.ObjectNode({type:Qn.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Qn.Opt(Qn.ListNode(Qn.Mod(Qn.ObjectNode(s({rolls:ti.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Qn.Opt(ti.Range({integer:!0})),entries:Qn.ListNode(n("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Qn.Opt(Qn.ListNode(n("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Qn.Mod(Qn.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Qn.Opt(Qn.Mod(Qn.NumberNode({integer:!0,min:1}),p)),quality:Qn.Opt(Qn.Mod(Qn.NumberNode({integer:!0}),p)),[Qn.Switch]:[{push:"type"}],[Qn.Case]:{"minecraft:alternatives":s({children:Qn.ListNode(n("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Qn.ListNode(n("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Qn.ListNode(n("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Qn.Opt(Qn.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Qn.Mod(Qn.ObjectNode({function:u,[Qn.Switch]:[{push:"function"}],[Qn.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Qn.Mod(Qn.ObjectNode({bonusMultiplier:Qn.Mod(Qn.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Qn.Mod(Qn.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Qn.Mod(Qn.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Qn.ListNode(Qn.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:Qn.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Qn.Opt(Qn.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:ti.Range({allowBinomial:!0}),treasure:Qn.Opt(Qn.BooleanNode())},"minecraft:exploration_map":{destination:Qn.Opt(i({enum:"map_feature"})),decoration:Qn.Opt(i({enum:"map_decoration"})),zoom:Qn.Opt(Qn.NumberNode({integer:!0})),search_radius:Qn.Opt(Qn.NumberNode({integer:!0})),skip_existing_chunks:Qn.Opt(Qn.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:ti.Range({bounds:!0})},"minecraft:looting_enchant":{count:ti.Range({bounds:!0}),limit:Qn.Opt(Qn.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Qn.ListNode(n("attribute_modifier"))},"minecraft:set_contents":{entries:Qn.ListNode(n("loot_entry"))},"minecraft:set_count":{count:ti.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:ti.Range({forceRange:!0})},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:Qn.Opt(Qn.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Qn.Opt(d),lore:Qn.ListNode(n("text_component")),replace:Qn.Opt(Qn.BooleanNode())},"minecraft:set_name":{entity:Qn.Opt(d),name:Qn.Opt(n("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Qn.Opt(Qn.ListNode(Qn.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:ti.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Qn.Mod(Qn.ObjectNode({condition:l,[Qn.Switch]:[{push:"condition"}],[Qn.Case]:c(s({},ti.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Qn.MapNode(i({validator:"objective"}),ti.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Qn.Mod(Qn.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:ti.Range({bounds:!0}),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Qn.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initPackMcmetaSchemas=void 0;const ii=Pe;ni.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",ii.Mod(ii.ObjectNode({pack:ii.Mod(ii.ObjectNode({pack_format:ii.Mod(ii.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:ii.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var ri={};Object.defineProperty(ri,"__esModule",{value:!0}),ri.initPredicatesSchemas=void 0;const oi=Pe,ai=Bn;ri.initPredicatesSchemas=function(e,t){const n=oi.Reference.bind(void 0,e),i=oi.StringNode.bind(void 0,t),r=oi.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:oi.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:oi.ObjectNode({min:oi.Opt(oi.NumberNode({integer:!0})),max:oi.Opt(oi.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:oi.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",oi.ObjectNode({item:oi.Opt(i({validator:"resource",params:{pool:"item"}})),tag:oi.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:oi.Opt(ai.Range()),durability:oi.Opt(ai.Range()),potion:oi.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:oi.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:oi.Opt(oi.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",oi.ObjectNode({enchantment:oi.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:oi.Opt(ai.Range())},{context:"enchantment"})),e.register("block_predicate",oi.ObjectNode({block:oi.Opt(i({validator:"resource",params:{pool:"block"}})),tag:oi.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:oi.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:oi.Opt(oi.MapNode(i(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",oi.ObjectNode({fluid:oi.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:oi.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:oi.Opt(oi.MapNode(i(),r))},{context:"fluid"})),e.register("location_predicate",oi.ObjectNode({position:oi.Opt(oi.ObjectNode({x:oi.Opt(ai.Range()),y:oi.Opt(ai.Range()),z:oi.Opt(ai.Range())})),biome:oi.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:oi.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:oi.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:oi.Opt(oi.ObjectNode({light:oi.Opt(ai.Range({integer:!0,min:0,max:15}))})),smokey:oi.Opt(oi.BooleanNode()),block:oi.Opt(n("block_predicate")),fluid:oi.Opt(n("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",oi.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:ai.Range(),[oi.Switch]:[{push:"type"}],[oi.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",oi.ObjectNode({gamemode:oi.Opt(i({enum:"gamemode"})),level:oi.Opt(ai.Range()),advancements:oi.Opt(oi.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),oi.ChoiceNode([{type:"boolean",node:oi.BooleanNode(),change:e=>!0},{type:"object",node:oi.MapNode(i(),oi.BooleanNode())}]))),recipes:oi.Opt(oi.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),oi.BooleanNode())),stats:oi.Opt(oi.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",oi.ObjectNode({amplifier:oi.Opt(ai.Range()),duration:oi.Opt(ai.Range()),ambient:oi.Opt(oi.BooleanNode()),visible:oi.Opt(oi.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",oi.ObjectNode({x:oi.Opt(ai.Range()),y:oi.Opt(ai.Range()),z:oi.Opt(ai.Range()),absolute:oi.Opt(ai.Range()),horizontal:oi.Opt(ai.Range())},{context:"distance"})),e.register("entity_predicate",oi.ObjectNode({type:oi.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:oi.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:oi.Opt(i({validator:"team"})),location:oi.Opt(n("location_predicate")),distance:oi.Opt(n("distance_predicate")),flags:oi.Opt(oi.ObjectNode({is_on_fire:oi.Opt(oi.BooleanNode()),is_sneaking:oi.Opt(oi.BooleanNode()),is_sprinting:oi.Opt(oi.BooleanNode()),is_swimming:oi.Opt(oi.BooleanNode()),is_baby:oi.Opt(oi.BooleanNode())})),equipment:oi.Opt(oi.MapNode(i({enum:"slot"}),n("item_predicate"))),vehicle:oi.Opt(n("entity_predicate")),targeted_entity:oi.Opt(n("entity_predicate")),player:oi.Opt(n("player_predicate")),fishing_hook:oi.Opt(oi.ObjectNode({in_open_water:oi.Opt(oi.BooleanNode())})),effects:oi.Opt(oi.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",oi.ObjectNode({is_explosion:oi.Opt(oi.BooleanNode()),is_fire:oi.Opt(oi.BooleanNode()),is_magic:oi.Opt(oi.BooleanNode()),is_projectile:oi.Opt(oi.BooleanNode()),is_lightning:oi.Opt(oi.BooleanNode()),bypasses_armor:oi.Opt(oi.BooleanNode()),bypasses_invulnerability:oi.Opt(oi.BooleanNode()),bypasses_magic:oi.Opt(oi.BooleanNode()),source_entity:oi.Opt(n("entity_predicate")),direct_entity:oi.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",oi.ObjectNode({dealt:oi.Opt(ai.Range()),taken:oi.Opt(ai.Range()),blocked:oi.Opt(oi.BooleanNode()),source_entity:oi.Opt(n("entity_predicate")),type:oi.Opt(n("damage_source_predicate"))},{context:"damage"}))};var si={};Object.defineProperty(si,"__esModule",{value:!0}),si.initRecipeSchemas=void 0;const ci=Pe;si.initRecipeSchemas=function(e,t){const n=ci.Reference.bind(void 0,e),i=ci.StringNode.bind(void 0,t);e.register("recipe",ci.Mod(ci.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[ci.Switch]:[{push:"type"}],[ci.Case]:{"minecraft:crafting_shaped":{group:ci.Opt(i({enum:"recipe_group",additional:!0})),pattern:ci.ListNode(i()),key:ci.MapNode(i(),n("recipe_ingredient")),result:n("recipe_result")},"minecraft:crafting_shapeless":{group:ci.Opt(i()),ingredients:ci.ListNode(n("recipe_ingredient")),result:n("recipe_result")},"minecraft:smelting":{group:ci.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ci.Opt(ci.NumberNode()),cookingtime:ci.Opt(ci.Mod(ci.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:ci.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ci.Opt(ci.NumberNode()),cookingtime:ci.Opt(ci.Mod(ci.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:ci.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ci.Opt(ci.NumberNode()),cookingtime:ci.Opt(ci.Mod(ci.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:ci.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ci.Opt(ci.NumberNode()),cookingtime:ci.Opt(ci.Mod(ci.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:ci.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:ci.NumberNode({integer:!0})},"minecraft:smithing":{group:ci.Opt(i()),base:n("recipe_ingredient_object"),addition:n("recipe_ingredient_object"),result:n("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",ci.Mod(ci.ChoiceNode([{type:"object",node:n("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:ci.ListNode(n("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",ci.Mod(ci.ObjectNode({item:ci.Opt(i({validator:"resource",params:{pool:"item"}})),tag:ci.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",ci.Mod(ci.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:ci.Opt(ci.Mod(ci.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var li={};Object.defineProperty(li,"__esModule",{value:!0}),li.initTagsSchemas=void 0;const ui=Pe;li.initTagsSchemas=function(e,t){const n=ui.StringNode.bind(void 0,t),i=e=>ui.Mod(ui.ObjectNode({replace:ui.Opt(ui.BooleanNode()),values:ui.ListNode(ui.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:ui.ObjectNode({id:n({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:ui.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("item_tag",i("item"))};var di={};Object.defineProperty(di,"__esModule",{value:!0}),di.initTextComponentSchemas=void 0;const hi=Pe;di.initTextComponentSchemas=function(e,t){const n=hi.Reference.bind(void 0,e),i=hi.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",hi.Mod(hi.ChoiceNode([{type:"object",node:n("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:n("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:r},{type:"number",node:hi.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:hi.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:hi.Opt(i()),font:hi.Opt(i()),bold:hi.Opt(hi.BooleanNode()),italic:hi.Opt(hi.BooleanNode()),underlined:hi.Opt(hi.BooleanNode()),strikethrough:hi.Opt(hi.BooleanNode()),obfuscated:hi.Opt(hi.BooleanNode()),insertion:hi.Opt(i()),clickEvent:hi.Opt(hi.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[hi.Switch]:[{push:"action"}],[hi.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:hi.Opt(hi.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[hi.Switch]:[{push:"action"}],[hi.Case]:{show_text:{value:hi.Opt(n("text_component")),contents:hi.Opt(n("text_component"))},show_item:{value:hi.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:hi.Opt(hi.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:hi.Opt(hi.NumberNode({integer:!0})),tag:hi.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:hi.Opt(hi.ObjectNode({name:hi.Opt(i()),type:hi.Opt(i()),id:hi.Opt(i())})),contents:hi.Opt(hi.Mod(hi.ObjectNode({name:hi.Opt(n("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:hi.Opt(n("text_component_list"))};e.register("text_component_object",hi.Mod(hi.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:hi.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:hi.ObjectNode(s({translate:i(),with:hi.Opt(n("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:hi.ObjectNode(s({score:hi.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:hi.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:hi.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:hi.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:hi.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:hi.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:hi.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:hi.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:hi.Opt(hi.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",hi.Mod(hi.ListNode(n("text_component")),{default:()=>[{text:""}]}))};var pi={},mi={};Object.defineProperty(mi,"__esModule",{value:!0}),mi.initBiomeSchemas=void 0;const fi=Pe;mi.initBiomeSchemas=function(e,t){const n=fi.StringNode.bind(void 0,t);e.register("biome",fi.Mod(fi.ObjectNode({surface_builder:n({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:fi.NumberNode(),scale:fi.NumberNode(),temperature:fi.NumberNode(),downfall:fi.NumberNode(),precipitation:n({enum:["none","rain","snow"]}),temperature_modifier:fi.Opt(n({enum:["none","frozen"]})),category:n({enum:"biome_category"}),player_spawn_friendly:fi.Opt(fi.BooleanNode()),creature_spawn_probability:fi.Opt(fi.NumberNode({min:0,max:1})),effects:fi.ObjectNode({sky_color:fi.NumberNode({color:!0}),fog_color:fi.NumberNode({color:!0}),water_color:fi.NumberNode({color:!0}),water_fog_color:fi.NumberNode({color:!0}),grass_color:fi.Opt(fi.NumberNode({color:!0})),foliage_color:fi.Opt(fi.NumberNode({color:!0})),grass_color_modifier:fi.Opt(n({enum:["none","dark_forest","swamp"]})),ambient_sound:fi.Opt(n()),mood_sound:fi.Opt(fi.ObjectNode({sound:n(),tick_delay:fi.NumberNode({integer:!0}),block_search_extent:fi.NumberNode({integer:!0}),offset:fi.NumberNode()})),additions_sound:fi.Opt(fi.ObjectNode({sound:n(),tick_chance:fi.NumberNode({min:0,max:1})})),music:fi.Opt(fi.ObjectNode({sound:n(),min_delay:fi.NumberNode({integer:!0,min:0}),max_delay:fi.NumberNode({integer:!0,min:0}),replace_current_music:fi.BooleanNode()})),particle:fi.Opt(fi.ObjectNode({options:fi.ObjectNode({type:n()}),probability:fi.NumberNode({min:0,max:1})}))}),starts:fi.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:fi.MapNode(n({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),fi.Mod(fi.ListNode(fi.ObjectNode({type:n({validator:"resource",params:{pool:"entity_type"}}),weight:fi.NumberNode({integer:!0}),minCount:fi.NumberNode({integer:!0}),maxCount:fi.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:fi.MapNode(n({validator:"resource",params:{pool:"entity_type"}}),fi.Mod(fi.ObjectNode({energy_budget:fi.NumberNode(),charge:fi.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:fi.MapNode(n({enum:["air","liquid"]}),fi.Mod(fi.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:fi.ListNode(fi.Mod(fi.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var gi={};Object.defineProperty(gi,"__esModule",{value:!0}),gi.initCarverSchemas=void 0;const _i=Pe;gi.initCarverSchemas=function(e,t){const n=_i.StringNode.bind(void 0,t);e.register("configured_carver",_i.Mod(_i.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:_i.ObjectNode({probability:_i.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var bi={};Object.defineProperty(bi,"__esModule",{value:!0}),bi.initDecoratorSchemas=void 0;const vi=Pe,yi=Bn;bi.initDecoratorSchemas=function(e,t){const n=vi.Reference.bind(void 0,e),i=vi.StringNode.bind(void 0,t),r={maximum:vi.NumberNode({integer:!0}),bottom_offset:vi.NumberNode({integer:!0}),top_offset:vi.NumberNode({integer:!0})},o={chance:vi.NumberNode({integer:!0,min:0})},a={count:yi.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",vi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/decorator"}}),config:vi.ObjectNode({[vi.Switch]:["pop",{push:"type"}],[vi.Case]:{"minecraft:carving_mask":{step:i({enum:"generation_step"}),probability:vi.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:vi.NumberNode({integer:!0}),extra_count:vi.NumberNode({integer:!0}),extra_chance:vi.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:vi.NumberNode(),below_noise:vi.NumberNode({integer:!0}),above_noise:vi.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:vi.NumberNode({integer:!0}),noise_factor:vi.NumberNode(),noise_offset:vi.Opt(vi.NumberNode())},"minecraft:decorated":{outer:n("configured_decorator"),inner:n("configured_decorator")},"minecraft:depth_average":{baseline:vi.NumberNode({integer:!0}),spread:vi.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":r,"minecraft:range_biased":r,"minecraft:range_very_biased":r,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var wi={},xi={};Object.defineProperty(xi,"__esModule",{value:!0}),xi.initProcessorListSchemas=void 0;const Ai=Pe;xi.initProcessorListSchemas=function(e,t){const n=Ai.Reference.bind(void 0,e),i=Ai.StringNode.bind(void 0,t);e.register("processor_list",Ai.Mod(Ai.ObjectNode({processors:Ai.ListNode(n("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Ai.Mod(Ai.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Ai.Switch]:[{push:"processor_type"}],[Ai.Case]:{"minecraft:block_age":{mossiness:Ai.NumberNode()},"minecraft:block_ignore":{blocks:Ai.ListNode(n("block_state"))},"minecraft:block_rot":{integrity:Ai.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:Ai.NumberNode({integer:!0})},"minecraft:rule":{rules:Ai.ListNode(n("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Ai.Mod(Ai.ObjectNode({position_predicate:Ai.Opt(n("pos_rule_test")),location_predicate:n("rule_test"),input_predicate:n("rule_test"),output_state:n("block_state"),output_nbt:Ai.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:Ai.NumberNode({min:0,max:255,integer:!0}),max_dist:Ai.NumberNode({min:0,max:255,integer:!0}),min_chance:Ai.NumberNode({min:0,max:1}),max_chance:Ai.NumberNode({min:0,max:1})};e.register("pos_rule_test",Ai.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Ai.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:n("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:Ai.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:n("block_state"),probability:Ai.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(wi,"__esModule",{value:!0}),wi.initFeatureSchemas=void 0;const Ni=Pe,ki=Bn;wi.initFeatureSchemas=function(e,t){const n=Ni.Reference.bind(void 0,e),i=Ni.StringNode.bind(void 0,t),r={can_replace:Ni.BooleanNode(),project:Ni.BooleanNode(),need_water:Ni.BooleanNode(),xspread:Ni.NumberNode({integer:!0}),yspread:Ni.NumberNode({integer:!0}),zspread:Ni.NumberNode({integer:!0}),tries:Ni.NumberNode({integer:!0}),state_provider:n("block_state_provider"),block_placer:n("block_placer"),whitelist:Ni.ListNode(n("block_state")),blacklist:Ni.ListNode(n("block_state"))},o={state:n("block_state"),radius:ki.UniformInt({min:0,max:4,maxSpread:4}),half_height:Ni.NumberNode({integer:!0,min:0,max:4}),targets:Ni.ListNode(n("block_state"))},a={cap_provider:n("block_state_provider"),stem_provider:n("block_state_provider"),foliage_radius:Ni.Opt(Ni.NumberNode({integer:!0}))},s={state:n("block_state"),size:Ni.NumberNode({integer:!0,min:0,max:64}),target:n("rule_test")},c={count:ki.UniformInt({min:-10,max:128,maxSpread:128})},l=Ni.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:n("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",Ni.Mod(Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:Ni.ObjectNode({[Ni.Switch]:["pop",{push:"type"}],[Ni.Case]:{"minecraft:bamboo":{probability:Ni.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:ki.UniformInt({min:0,max:2,maxSpread:1}),height:ki.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:n("block_state_provider")},"minecraft:decorated":{decorator:n("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:n("block_state"),rim:n("block_state"),size:ki.UniformInt({min:0,max:8,maxSpread:8}),rim_size:ki.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:n("block_state"),target:n("block_state")},"minecraft:end_gateway":{exact:Ni.BooleanNode(),exit:Ni.Opt(n("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Ni.Opt(Ni.BooleanNode()),crystal_beam_target:Ni.Opt(n("block_pos")),spikes:Ni.ListNode(Ni.ObjectNode({centerX:Ni.Opt(Ni.NumberNode({integer:!0})),centerZ:Ni.Opt(Ni.NumberNode({integer:!0})),radius:Ni.Opt(Ni.NumberNode({integer:!0})),height:Ni.Opt(Ni.NumberNode({integer:!0})),guarded:Ni.Opt(Ni.BooleanNode())}))},"minecraft:fill_layer":{state:n("block_state"),height:Ni.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:n("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:n("block_state"),decor_state:n("block_state"),stem_state:n("block_state"),valid_base_block:n("block_state"),planted:Ni.Opt(Ni.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:n("block_state")},"minecraft:lake":{state:n("block_state")},"minecraft:nether_forest_vegetation":{state_provider:n("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:n("block_state"),target:n("block_state"),radius:ki.UniformInt()},"minecraft:no_bonemeal_flower":r,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Ni.ListNode(Ni.ObjectNode({chance:Ni.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:Ni.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:n("block_state"),place_on:Ni.ListNode(n("block_state")),place_in:Ni.ListNode(n("block_state")),place_under:Ni.ListNode(n("block_state"))},"minecraft:simple_random_selector":{features:Ni.ListNode(l)},"minecraft:spring_feature":{state:n("fluid_state"),rock_count:Ni.NumberNode({integer:!0}),hole_count:Ni.NumberNode({integer:!0}),requires_block_below:Ni.BooleanNode(),valid_blocks:Ni.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:Ni.NumberNode({integer:!0}),ignore_vines:Ni.BooleanNode(),heightmap:i({enum:"heightmap_type"}),minimum_size:n("feature_size"),trunk_provider:n("block_state_provider"),leaves_provider:n("block_state_provider"),trunk_placer:Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Ni.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Ni.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Ni.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:ki.UniformInt({min:0,max:8,maxSpread:8}),offset:ki.UniformInt({min:0,max:8,maxSpread:8}),[Ni.Switch]:[{push:"type"}],[Ni.Case]:{"minecraft:blob_foliage_placer":{height:Ni.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Ni.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Ni.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Ni.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:ki.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:ki.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:ki.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Ni.ListNode(Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Ni.Switch]:[{push:"type"}],[Ni.Case]:{"minecraft:alter_ground":{provider:n("block_state_provider")},"minecraft:beehive":{probability:Ni.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Ni.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",Ni.Mod(Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Ni.Opt(Ni.NumberNode({min:0,max:80})),[Ni.Switch]:[{push:"type"}],[Ni.Case]:{"minecraft:two_layers_feature_size":{limit:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:81})),lower_size:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:16})),upper_size:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:80})),upper_limit:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:80})),lower_size:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:16})),middle_size:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:16})),upper_size:Ni.Opt(Ni.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Ni.Mod(Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Ni.Switch]:[{push:"type"}],[Ni.Case]:{"minecraft:rotated_block_provider":{state:n("block_state")},"minecraft:simple_state_provider":{state:n("block_state")},"minecraft:weighted_state_provider":{entries:Ni.ListNode(Ni.Mod(Ni.ObjectNode({weight:Ni.NumberNode({integer:!0,min:1}),data:n("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Ni.Mod(Ni.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Ni.Switch]:[{push:"type"}],[Ni.Case]:{"minecraft:column_placer":{min_size:Ni.NumberNode({integer:!0}),extra_size:Ni.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Ci={};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.initNoiseSettingsSchemas=void 0;const Ei=Pe,Si=Bn;Ci.initNoiseSettingsSchemas=function(e,t){const n=Ei.Reference.bind(void 0,e),i=Ei.StringNode.bind(void 0,t);e.register("noise_settings",Ei.Mod(Ei.ObjectNode({name:Ei.Mod(i({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Ei.NumberNode({integer:!0}),bedrock_floor_position:Ei.NumberNode({integer:!0}),sea_level:Ei.NumberNode({integer:!0}),disable_mob_generation:Ei.BooleanNode(),default_block:n("block_state"),default_fluid:n("block_state"),noise:Ei.ObjectNode({height:Ei.NumberNode({integer:!0}),density_factor:Ei.NumberNode(),density_offset:Ei.NumberNode(),size_horizontal:Ei.NumberNode({integer:!0}),size_vertical:Ei.NumberNode({integer:!0}),simplex_surface_noise:Ei.BooleanNode(),random_density_offset:Ei.Opt(Ei.BooleanNode()),island_noise_override:Ei.Opt(Ei.BooleanNode()),amplified:Ei.Opt(Ei.BooleanNode()),sampling:Ei.ObjectNode({xz_scale:Ei.NumberNode(),y_scale:Ei.NumberNode(),xz_factor:Ei.NumberNode(),y_factor:Ei.NumberNode()}),bottom_slide:Ei.ObjectNode({target:Ei.NumberNode({integer:!0}),size:Ei.NumberNode({integer:!0}),offset:Ei.NumberNode({integer:!0})}),top_slide:Ei.ObjectNode({target:Ei.NumberNode({integer:!0}),size:Ei.NumberNode({integer:!0}),offset:Ei.NumberNode({integer:!0})})}),structures:n("generator_structures")},{context:"noise_settings"}),{default:()=>Si.DefaultNoiseSettings})),e.register("generator_structures",Ei.ObjectNode({stronghold:Ei.Opt(Ei.ObjectNode({distance:Ei.NumberNode({integer:!0,min:0,max:1023}),spread:Ei.NumberNode({integer:!0,min:0,max:1023}),count:Ei.NumberNode({integer:!0,min:1,max:4095})})),structures:Ei.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Ei.Mod(Ei.ObjectNode({spacing:Ei.NumberNode({integer:!0,min:0,max:4096}),separation:Ei.Mod(Ei.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,n,i,r)=>(t.pop().push("spacing").get()<=n&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,n,i,r))}))),salt:Ei.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Ei.Mod(Ei.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:Ei.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initStructureFeatureSchemas=void 0;const Fi=Pe;Oi.initStructureFeatureSchemas=function(e,t){const n=Fi.StringNode.bind(void 0,t),i={start_pool:n({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Fi.NumberNode({integer:!0})};e.register("configured_structure_feature",Fi.Mod(Fi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Fi.ObjectNode({[Fi.Switch]:["pop",{push:"type"}],[Fi.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Fi.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:n({enum:["normal","mesa"]}),probability:Fi.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:n({enum:["cold","warm"]}),large_probability:Fi.NumberNode({min:0,max:1}),cluster_probability:Fi.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:n({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Fi.Opt(Fi.BooleanNode())},"minecraft:village":i}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Di={};Object.defineProperty(Di,"__esModule",{value:!0}),Di.initSurfaceBuilderSchemas=void 0;const Bi=Pe;Di.initSurfaceBuilderSchemas=function(e,t){const n=Bi.StringNode.bind(void 0,t),i=Bi.Reference.bind(void 0,e);e.register("configured_surface_builder",Bi.Mod(Bi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Bi.ObjectNode({top_material:i("block_state"),under_material:i("block_state"),underwater_material:i("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Li={};Object.defineProperty(Li,"__esModule",{value:!0}),Li.initTemplatePoolSchemas=void 0;const Mi=Pe;Li.initTemplatePoolSchemas=function(e,t){const n=Mi.Reference.bind(void 0,e),i=Mi.StringNode.bind(void 0,t),r=Mi.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:n("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Mi.Mod(Mi.ObjectNode({name:i(),fallback:i(),elements:Mi.ListNode(n("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Mi.Mod(Mi.ObjectNode({weight:Mi.NumberNode({integer:!0,min:1}),element:n("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Mi.Mod(Mi.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[Mi.Switch]:[{push:"element_type"}],[Mi.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:r},"minecraft:list_pool_element":{elements:Mi.ListNode(n("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:r}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(pi,"__esModule",{value:!0}),pi.initWorldgenSchemas=void 0;const Ti=mi,Ri=gi,$i=bi,Ii=wi,ji=Ci,Pi=xi,zi=Oi,Ui=Di,Wi=Li;pi.initWorldgenSchemas=function(e,t){Ti.initBiomeSchemas(e,t),Ri.initCarverSchemas(e,t),$i.initDecoratorSchemas(e,t),Ii.initFeatureSchemas(e,t),ji.initNoiseSettingsSchemas(e,t),Pi.initProcessorListSchemas(e,t),zi.initStructureFeatureSchemas(e,t),Ui.initSurfaceBuilderSchemas(e,t),Wi.initTemplatePoolSchemas(e,t)};var Hi={};Object.defineProperty(Hi,"__esModule",{value:!0}),Hi.initWorldSettingsSchemas=void 0;const Vi=Pe;Hi.initWorldSettingsSchemas=function(e,t){const n=Vi.Reference.bind(void 0,e),i=Vi.StringNode.bind(void 0,t);e.register("world_settings",Vi.Mod(Vi.ObjectNode({generate_features:Vi.BooleanNode(),bonus_chest:Vi.BooleanNode(),seed:Vi.NumberNode({integer:!0}),dimensions:Vi.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),n("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(Fn,"__esModule",{value:!0}),Fn.initSchemas=void 0;const Gi=Dn,qi=Tn,Ki=Bn,Xi=Un,Ji=Vn,Yi=Kn,Zi=Yn,Qi=ni,er=ri,tr=si,nr=li,ir=di,rr=pi,or=Hi;Fn.initSchemas=function(e,t){Ki.initCommonSchemas(e,t),Gi.initAdvancementSchemas(e,t),qi.initAssetsSchemas(e,t),Xi.initConditionSchemas(e,t),Yi.initDimensionTypeSchemas(e,t),Ji.initDimensionSchemas(e,t),Zi.initLootTableSchemas(e,t),Qi.initPackMcmetaSchemas(e,t),er.initPredicatesSchemas(e,t),tr.initRecipeSchemas(e,t),nr.initTagsSchemas(e,t),ir.initTextComponentSchemas(e,t),rr.initWorldgenSchemas(e,t),or.initWorldSettingsSchemas(e,t)};var ar=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),sr=je&&je.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cr=je&&je.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&ar(t,e,n);return sr(t,e),t};Object.defineProperty(Sn,"__esModule",{value:!0});var lr=Sn.getSchemas=Sn.getCollections=void 0;const ur=Pe,dr=On,hr=Fn;var pr=Sn.lootContext=cr(Zn);var mr=Sn.getCollections=function(){const e=new ur.CollectionRegistry;return dr.initCollections(e),e};lr=Sn.getSchemas=function(e){const t=new ur.SchemaRegistry;return hr.initSchemas(t,e),t};var fr=Object.freeze(Object.assign(Object.create(null),Sn,{[Symbol.toStringTag]:"Module",get getSchemas(){return lr},get getCollections(){return mr},lootContext:pr,default:Sn})),gr={},_r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.initCollections=void 0,_r.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var br={},vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initAdvancementSchemas=void 0;const yr=Pe;vr.initAdvancementSchemas=function(e,t){const n=yr.Reference.bind(void 0,e),i=yr.StringNode.bind(void 0,t),r=yr.ChoiceNode([{type:"object",node:yr.Opt(n("entity_predicate")),change:e=>{var t,n;return null!==(n=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==n?n:{}}},{type:"list",node:yr.ListNode(n("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",yr.Mod(yr.ObjectNode({display:yr.Opt(yr.Mod(yr.ObjectNode({icon:yr.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:yr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:n("text_component"),description:n("text_component"),background:yr.Opt(i()),frame:yr.Opt(i({enum:["task","challenge","goal"]})),show_toast:yr.Opt(yr.BooleanNode()),announce_to_chat:yr.Opt(yr.BooleanNode()),hidden:yr.Opt(yr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:yr.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:yr.MapNode(i(),n("advancement_criteria")),requirements:yr.Opt(yr.ListNode(yr.ListNode(i()))),rewards:yr.Opt(yr.ObjectNode({function:yr.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:yr.Opt(yr.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:yr.Opt(yr.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:yr.Opt(yr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",yr.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:yr.Opt(yr.ObjectNode({player:yr.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[yr.Switch]:["pop",{push:"trigger"}],[yr.Case]:{"minecraft:bee_nest_destroyed":{block:yr.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:yr.Opt(yr.NumberNode({integer:!0})),item:yr.Opt(n("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:yr.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:yr.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:yr.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:yr.Opt(yr.ListNode(r))},"minecraft:construct_beacon":{level:n("int_bounds")},"minecraft:consume_item":{item:yr.Opt(n("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:yr.Opt(yr.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),yr.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds")}))),source:yr.Opt(r)},"minecraft:enter_block":{block:yr.Opt(i({validator:"resource",params:{pool:"block"}})),state:yr.Opt(yr.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:n("int_bounds"),item:yr.Opt(n("item_predicate"))},"minecraft:entity_hurt_player":{damage:yr.Opt(n("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:yr.Opt(n("damage_source_predicate"))},"minecraft:filled_bucket":{item:yr.Opt(n("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:yr.Opt(n("item_predicate"))},"minecraft:hero_of_the_village":{location:yr.Opt(n("location_predicate"))},"minecraft:inventory_changed":{slots:yr.Opt(yr.ObjectNode({empty:n("int_bounds"),occupied:n("int_bounds"),full:n("int_bounds")})),items:yr.Opt(yr.ListNode(n("item_predicate")))},"minecraft:item_durability_changed":{delta:n("int_bounds"),durability:n("int_bounds"),item:yr.Opt(n("item_predicate"))},"minecraft:item_used_on_block":{item:yr.Opt(n("item_predicate")),location:yr.Opt(n("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:n("int_bounds"),victims:yr.Opt(yr.ListNode(r))},"minecraft:levitation":{distance:n("distance_predicate"),duration:n("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:yr.Opt(n("location_predicate"))},"minecraft:nether_travel":{distance:n("distance_predicate"),entered:yr.Opt(n("location_predicate")),exited:yr.Opt(n("location_predicate"))},"minecraft:placed_block":{block:yr.Opt(i({validator:"resource",params:{pool:"block"}})),state:yr.Opt(yr.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:yr.Opt(n("item_predicate")),location:yr.Opt(n("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:yr.Opt(n("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:yr.Opt(n("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:yr.Opt(n("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:yr.Opt(n("location_predicate"))},"minecraft:slide_down_block":{block:yr.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:yr.Opt(n("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:n("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:yr.Opt(n("entity_predicate")),item:yr.Opt(n("item_predicate"))},"minecraft:used_ender_eye":{distance:n("float_bounds")},"minecraft:used_totem":{item:yr.Opt(n("item_predicate"))},"minecraft:using_item":{item:yr.Opt(n("item_predicate"))},"minecraft:villager_trade":{villager:yr.Opt(n("entity_predicate")),item:yr.Opt(n("item_predicate"))},"minecraft:voluntary_exile":{location:n("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var wr={},xr={};Object.defineProperty(xr,"__esModule",{value:!0}),xr.initModelSchemas=void 0;const Ar=Pe;xr.initModelSchemas=function(e,t){Ar.Reference.bind(void 0,e);const n=Ar.StringNode.bind(void 0,t),i=(e,t,n)=>Ar.ListNode(Ar.NumberNode({min:t,max:n}),{minLength:e,maxLength:e}),r=Ar.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:n(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:n({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Ar.Mod(Ar.ObjectNode({parent:Ar.Opt(n({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Ar.Opt(Ar.BooleanNode()),gui_light:Ar.Opt(n({enum:"gui_light"})),textures:Ar.Opt(Ar.MapNode(n(),r)),elements:Ar.Opt(Ar.ListNode(Ar.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:Ar.Opt(Ar.ObjectNode({origin:i(3),axis:n({enum:"axis"}),angle:Ar.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Ar.Opt(Ar.BooleanNode())})),shade:Ar.Opt(Ar.BooleanNode()),faces:Ar.MapNode(n({enum:"direction"}),Ar.ObjectNode({texture:r,uv:Ar.Opt(i(4)),cullface:Ar.Opt(n({enum:"direction"})),rotation:Ar.Opt(Ar.NumberNode({integer:!0})),tintindex:Ar.Opt(Ar.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Ar.Opt(Ar.MapNode(n({enum:"display_position"}),Ar.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:Ar.Opt(Ar.ListNode(Ar.ObjectNode({predicate:Ar.MapNode(n({enum:"item_model_predicates"}),Ar.NumberNode()),model:n({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Nr={};Object.defineProperty(Nr,"__esModule",{value:!0}),Nr.initBlockDefinitionSchemas=void 0;const kr=Pe;Nr.initBlockDefinitionSchemas=function(e,t){const n=kr.Reference.bind(void 0,e),i=kr.StringNode.bind(void 0,t);e.register("block_definition",kr.Mod(kr.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:kr.ObjectNode({variants:kr.MapNode(i(),n("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:kr.ObjectNode({multipart:kr.ListNode(kr.ObjectNode({when:kr.Opt(n("multipart_condition")),apply:n("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:i({validator:"resource",params:{pool:"$model"}}),x:kr.Opt(kr.NumberEnum({integer:!0,values:[0,90,180,270]})),y:kr.Opt(kr.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:kr.Opt(kr.BooleanNode())};e.register("model_variant",kr.ChoiceNode([{type:"object",node:kr.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:kr.ListNode(kr.ObjectNode(c(s({},r),{weight:kr.Opt(kr.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",kr.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:kr.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:kr.ObjectNode({OR:kr.ListNode(n("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(wr,"__esModule",{value:!0}),wr.initAssetsSchemas=void 0;const Cr=xr,Er=Nr;wr.initAssetsSchemas=function(e,t){Er.initBlockDefinitionSchemas(e,t),Cr.initModelSchemas(e,t)};var Sr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(n,i){const r=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,n;return void 0===e?0:null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",a(!0)),n.register("float_bounds",a()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,n,i,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:n,node:l[o][i]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var n;if("minecraft:"+(null===(n=null==t?void 0:t.type)||void 0===n?void 0:n.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var n,i,r;return{[e]:null!==(r=null!==(i=null!==(n=t.absolute)&&void 0!==n?n:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,n=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:n},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return i.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),n,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Sr);var Or={};Object.defineProperty(Or,"__esModule",{value:!0}),Or.initConditionSchemas=void 0;const Fr=Pe,Dr=Sr;Or.initConditionSchemas=function(e,t){const n=Fr.Reference.bind(void 0,e),i=Fr.StringNode.bind(void 0,t);e.register("predicate",Fr.ObjectOrList(n("condition"),{choiceContext:"condition"})),e.register("condition",Fr.Mod(Fr.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Fr.Switch]:[{push:"condition"}],[Fr.Case]:Dr.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Br={};Object.defineProperty(Br,"__esModule",{value:!0}),Br.initDimensionSchemas=void 0;const Lr=Pe,Mr=Sr;Br.initDimensionSchemas=function(e,t){const n=Lr.Reference.bind(void 0,e),i=Lr.StringNode.bind(void 0,t),r=e=>Lr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Lr.Mod(Lr.ObjectNode({type:Mr.DimensionTypePresets(n("dimension_type")),generator:Lr.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Lr.Switch]:[{push:"type"}],[Lr.Case]:{"minecraft:noise":{seed:Lr.NumberNode({integer:!0}),settings:Mr.NoiseSettingsPresets(n("noise_settings")),biome_source:Lr.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Lr.Switch]:[{push:"type"}],[Lr.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Lr.NumberNode({integer:!0}),preset:Lr.Opt(i({enum:["nether"]})),altitude_noise:r(n("generator_biome_noise")),temperature_noise:r(n("generator_biome_noise")),humidity_noise:r(n("generator_biome_noise")),weirdness_noise:r(n("generator_biome_noise")),biomes:r(Lr.Mod(Lr.ListNode(n("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Lr.Opt(Lr.NumberNode({integer:!0,min:0,max:62})),biomes:Lr.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Lr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Lr.NumberNode({integer:!0}),large_biomes:Lr.Opt(Lr.BooleanNode()),legacy_biome_init_layer:Lr.Opt(Lr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Lr.ObjectNode({biome:Lr.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Lr.Opt(Lr.BooleanNode()),features:Lr.Opt(Lr.BooleanNode()),layers:Lr.ListNode(n("generator_layer")),structures:n("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Lr.Mod(Lr.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Lr.ObjectNode({altitude:Lr.NumberNode(),temperature:Lr.NumberNode(),humidity:Lr.NumberNode(),weirdness:Lr.NumberNode(),offset:Lr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Lr.Mod(Lr.ObjectNode({firstOctave:Lr.NumberNode({integer:!0}),amplitudes:Lr.ListNode(Lr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Tr={};Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.initDimensionTypeSchemas=void 0;const Rr=Pe,$r=Sr;Tr.initDimensionTypeSchemas=function(e,t){const n=Rr.StringNode.bind(void 0,t);e.register("dimension_type",Rr.Mod(Rr.ObjectNode({name:Rr.Mod(n({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Rr.BooleanNode(),natural:Rr.BooleanNode(),piglin_safe:Rr.BooleanNode(),respawn_anchor_works:Rr.BooleanNode(),bed_works:Rr.BooleanNode(),has_raids:Rr.BooleanNode(),has_skylight:Rr.BooleanNode(),has_ceiling:Rr.BooleanNode(),coordinate_scale:Rr.NumberNode({min:1e-5,max:3e7}),ambient_light:Rr.NumberNode(),fixed_time:Rr.Opt(Rr.NumberNode({integer:!0})),logical_height:Rr.NumberNode({integer:!0,min:0,max:4096}),effects:Rr.Opt(n({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:n({validator:"resource",params:{pool:"$tag/block"}}),min_y:Rr.NumberNode({integer:!0,min:-2048,max:2047}),height:Rr.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>$r.DefaultDimensionType,validate:(t,n,i,r)=>((null==(n=e.validate(t,n,i,r))?void 0:n.min_y)+(null==n?void 0:n.height)>2047&&i.add(t.push("height"),"error.min_y_plus_height",2047),(null==n?void 0:n.logical_height)>(null==n?void 0:n.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==n?void 0:n.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==n?void 0:n.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),n)}))))};var Ir={};Object.defineProperty(Ir,"__esModule",{value:!0}),Ir.initItemModifierSchemas=void 0;const jr=Pe,Pr=Sr;Ir.initItemModifierSchemas=function(e,t){const n=jr.Reference.bind(void 0,e),i=jr.StringNode.bind(void 0,t);e.register("item_modifier",jr.ObjectOrList(n("function"),{choiceContext:"function"}));const r={conditions:jr.Opt(jr.ListNode(n("condition")))};e.register("function",jr.Mod(jr.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[jr.Switch]:[{push:"function"}],[jr.Case]:Pr.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var zr={},Ur={};Object.defineProperty(Ur,"__esModule",{value:!0}),Ur.LootFunctions=Ur.LootConditions=Ur.LootCopySources=Ur.LootEntitySources=Ur.LootTableTypes=void 0,Ur.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ur.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ur.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ur.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ur.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(zr,"__esModule",{value:!0}),zr.initLootTableSchemas=void 0;const Wr=Pe,Hr=Ur,Vr=Sr;zr.initLootTableSchemas=function(e,t){const n=Wr.Reference.bind(void 0,e),i=Wr.StringNode.bind(void 0,t),r={conditions:Wr.Opt(Wr.ListNode(n("loot_condition")))},o=s({functions:Wr.Opt(Wr.ListNode(n("loot_function")))},r);function a(e,n,i){const r=[],o=i=>t.get(n).filter((t=>{var n;return(null!==(n=e.get(t))&&void 0!==n?n:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Hr.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Wr.Path(["type"]))===t,node:i(o(e))})}return r.push({match:e=>!0,node:i(n)}),Wr.SwitchNode(r)}const c=a(Hr.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Hr.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Hr.LootEntitySources,"entity_source",(e=>i({enum:e}))),d=a(Hr.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Wr.Mod(Wr.ObjectNode({type:Wr.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Wr.Opt(Wr.ListNode(Wr.Mod(Wr.ObjectNode(s({rolls:n("number_provider"),bonus_rolls:Wr.Opt(n("number_provider")),entries:Wr.ListNode(n("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Wr.Opt(Wr.ListNode(n("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Wr.Mod(Wr.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0,min:1}),h)),quality:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0}),h)),[Wr.Switch]:[{push:"type"}],[Wr.Case]:{"minecraft:alternatives":s({children:Wr.ListNode(n("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Wr.ListNode(n("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Wr.ListNode(n("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Wr.Opt(Wr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Wr.Mod(Wr.ObjectNode({function:l,[Wr.Switch]:[{push:"function"}],[Wr.Case]:Vr.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Wr.Mod(Wr.ObjectNode({condition:c,[Wr.Switch]:[{push:"condition"}],[Wr.Case]:Vr.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Wr.Mod(Wr.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:n("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Wr.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Gr={};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.initPackMcmetaSchemas=void 0;const qr=Pe;Gr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",qr.Mod(qr.ObjectNode({pack:qr.Mod(qr.ObjectNode({pack_format:qr.Mod(qr.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:qr.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPredicatesSchemas=void 0;const Xr=Pe;Kr.initPredicatesSchemas=function(e,t){const n=Xr.Reference.bind(void 0,e),i=Xr.StringNode.bind(void 0,t),r=Xr.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Xr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Xr.ObjectNode({min:Xr.Opt(Xr.NumberNode({integer:!0})),max:Xr.Opt(Xr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Xr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Xr.ObjectNode({items:Xr.Opt(Xr.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:Xr.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:n("int_bounds"),durability:n("int_bounds"),potion:Xr.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Xr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Xr.Opt(Xr.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Xr.ObjectNode({enchantment:Xr.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:n("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Xr.ObjectNode({blocks:Xr.Opt(Xr.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:Xr.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Xr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Xr.Opt(Xr.MapNode(i(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Xr.ObjectNode({fluid:Xr.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Xr.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Xr.Opt(Xr.MapNode(i(),r))},{context:"fluid"})),e.register("location_predicate",Xr.ObjectNode({position:Xr.Opt(Xr.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds")})),biome:Xr.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Xr.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Xr.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Xr.Opt(Xr.ObjectNode({light:n("int_bounds")})),smokey:Xr.Opt(Xr.BooleanNode()),block:Xr.Opt(n("block_predicate")),fluid:Xr.Opt(n("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Xr.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:n("int_bounds"),[Xr.Switch]:[{push:"type"}],[Xr.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Xr.ObjectNode({gamemode:Xr.Opt(i({enum:"gamemode"})),level:n("int_bounds"),advancements:Xr.Opt(Xr.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Xr.ChoiceNode([{type:"boolean",node:Xr.BooleanNode(),change:e=>!0},{type:"object",node:Xr.MapNode(i(),Xr.BooleanNode())}]))),recipes:Xr.Opt(Xr.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Xr.BooleanNode())),stats:Xr.Opt(Xr.ListNode(n("statistic_predicate"))),looking_at:Xr.Opt(n("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Xr.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds"),ambient:Xr.Opt(Xr.BooleanNode()),visible:Xr.Opt(Xr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Xr.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds"),absolute:n("float_bounds"),horizontal:n("float_bounds")},{context:"distance"})),e.register("entity_predicate",Xr.ObjectNode({type:Xr.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Xr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Xr.Opt(i({validator:"team"})),location:Xr.Opt(n("location_predicate")),stepping_on:Xr.Opt(n("location_predicate")),distance:Xr.Opt(n("distance_predicate")),flags:Xr.Opt(Xr.ObjectNode({is_on_fire:Xr.Opt(Xr.BooleanNode()),is_sneaking:Xr.Opt(Xr.BooleanNode()),is_sprinting:Xr.Opt(Xr.BooleanNode()),is_swimming:Xr.Opt(Xr.BooleanNode()),is_baby:Xr.Opt(Xr.BooleanNode())})),equipment:Xr.Opt(Xr.MapNode(i({enum:"slot"}),n("item_predicate"))),player:Xr.Opt(n("player_predicate")),vehicle:Xr.Opt(n("entity_predicate")),passenger:Xr.Opt(n("entity_predicate")),targeted_entity:Xr.Opt(n("entity_predicate")),lightning_bolt:Xr.Opt(Xr.ObjectNode({blocks_set_on_fire:Xr.Opt(n("int_bounds")),entity_struck:Xr.Opt(n("entity_predicate"))})),fishing_hook:Xr.Opt(Xr.ObjectNode({in_open_water:Xr.Opt(Xr.BooleanNode())})),effects:Xr.Opt(Xr.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Xr.ObjectNode({is_explosion:Xr.Opt(Xr.BooleanNode()),is_fire:Xr.Opt(Xr.BooleanNode()),is_magic:Xr.Opt(Xr.BooleanNode()),is_projectile:Xr.Opt(Xr.BooleanNode()),is_lightning:Xr.Opt(Xr.BooleanNode()),bypasses_armor:Xr.Opt(Xr.BooleanNode()),bypasses_invulnerability:Xr.Opt(Xr.BooleanNode()),bypasses_magic:Xr.Opt(Xr.BooleanNode()),source_entity:Xr.Opt(n("entity_predicate")),direct_entity:Xr.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Xr.ObjectNode({dealt:n("float_bounds"),taken:n("float_bounds"),blocked:Xr.Opt(Xr.BooleanNode()),source_entity:Xr.Opt(n("entity_predicate")),type:Xr.Opt(n("damage_source_predicate"))},{context:"damage"}))};var Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initRecipeSchemas=void 0;const Yr=Pe;Jr.initRecipeSchemas=function(e,t){const n=Yr.Reference.bind(void 0,e),i=Yr.StringNode.bind(void 0,t);e.register("recipe",Yr.Mod(Yr.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Yr.Switch]:[{push:"type"}],[Yr.Case]:{"minecraft:crafting_shaped":{group:Yr.Opt(i({enum:"recipe_group",additional:!0})),pattern:Yr.ListNode(i()),key:Yr.MapNode(i(),n("recipe_ingredient")),result:n("recipe_result")},"minecraft:crafting_shapeless":{group:Yr.Opt(i()),ingredients:Yr.ListNode(n("recipe_ingredient")),result:n("recipe_result")},"minecraft:smelting":{group:Yr.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yr.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yr.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yr.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yr.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Yr.NumberNode({integer:!0})},"minecraft:smithing":{group:Yr.Opt(i()),base:n("recipe_ingredient_object"),addition:n("recipe_ingredient_object"),result:n("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yr.Mod(Yr.ChoiceNode([{type:"object",node:n("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yr.ListNode(n("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yr.Mod(Yr.ObjectNode({item:Yr.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Yr.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yr.Mod(Yr.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initTagsSchemas=void 0;const Qr=Pe;Zr.initTagsSchemas=function(e,t){const n=Qr.StringNode.bind(void 0,t),i=e=>Qr.Mod(Qr.ObjectNode({replace:Qr.Opt(Qr.BooleanNode()),values:Qr.ListNode(Qr.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qr.ObjectNode({id:n({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qr.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item"))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initTextComponentSchemas=void 0;const to=Pe;eo.initTextComponentSchemas=function(e,t){const n=to.Reference.bind(void 0,e),i=to.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",to.Mod(to.ChoiceNode([{type:"object",node:n("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:n("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:r},{type:"number",node:to.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:to.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:to.Opt(i()),font:to.Opt(i()),bold:to.Opt(to.BooleanNode()),italic:to.Opt(to.BooleanNode()),underlined:to.Opt(to.BooleanNode()),strikethrough:to.Opt(to.BooleanNode()),obfuscated:to.Opt(to.BooleanNode()),insertion:to.Opt(i()),clickEvent:to.Opt(to.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[to.Switch]:[{push:"action"}],[to.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:to.Opt(to.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[to.Switch]:[{push:"action"}],[to.Case]:{show_text:{value:to.Opt(n("text_component")),contents:to.Opt(n("text_component"))},show_item:{value:to.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:to.Opt(to.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:to.Opt(to.NumberNode({integer:!0})),tag:to.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:to.Opt(to.ObjectNode({name:to.Opt(i()),type:to.Opt(i()),id:to.Opt(i())})),contents:to.Opt(to.Mod(to.ObjectNode({name:to.Opt(n("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:to.Opt(n("text_component_list"))};e.register("text_component_object",to.Mod(to.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:to.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:to.ObjectNode(s({translate:i(),with:to.Opt(n("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:to.ObjectNode(s({score:to.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:to.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:to.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:to.Opt(n("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:to.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:to.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:to.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:to.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:to.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:to.Opt(to.BooleanNode()),separator:to.Opt(n("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",to.Mod(to.ListNode(n("text_component")),{default:()=>[{text:""}]}))};var no={},io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initBiomeSchemas=void 0;const ro=Pe;io.initBiomeSchemas=function(e,t){const n=ro.StringNode.bind(void 0,t);e.register("biome",ro.Mod(ro.ObjectNode({surface_builder:n({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:ro.NumberNode(),scale:ro.NumberNode(),temperature:ro.NumberNode(),downfall:ro.NumberNode(),precipitation:n({enum:["none","rain","snow"]}),temperature_modifier:ro.Opt(n({enum:["none","frozen"]})),category:n({enum:"biome_category"}),player_spawn_friendly:ro.Opt(ro.BooleanNode()),creature_spawn_probability:ro.Opt(ro.NumberNode({min:0,max:1})),effects:ro.ObjectNode({sky_color:ro.NumberNode({color:!0}),fog_color:ro.NumberNode({color:!0}),water_color:ro.NumberNode({color:!0}),water_fog_color:ro.NumberNode({color:!0}),grass_color:ro.Opt(ro.NumberNode({color:!0})),foliage_color:ro.Opt(ro.NumberNode({color:!0})),grass_color_modifier:ro.Opt(n({enum:["none","dark_forest","swamp"]})),ambient_sound:ro.Opt(n()),mood_sound:ro.Opt(ro.ObjectNode({sound:n(),tick_delay:ro.NumberNode({integer:!0}),block_search_extent:ro.NumberNode({integer:!0}),offset:ro.NumberNode()})),additions_sound:ro.Opt(ro.ObjectNode({sound:n(),tick_chance:ro.NumberNode({min:0,max:1})})),music:ro.Opt(ro.ObjectNode({sound:n(),min_delay:ro.NumberNode({integer:!0,min:0}),max_delay:ro.NumberNode({integer:!0,min:0}),replace_current_music:ro.BooleanNode()})),particle:ro.Opt(ro.ObjectNode({options:ro.ObjectNode({type:n()}),probability:ro.NumberNode({min:0,max:1})}))}),starts:ro.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:ro.MapNode(n({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),ro.Mod(ro.ListNode(ro.ObjectNode({type:n({validator:"resource",params:{pool:"entity_type"}}),weight:ro.NumberNode({integer:!0}),minCount:ro.NumberNode({integer:!0}),maxCount:ro.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:ro.MapNode(n({validator:"resource",params:{pool:"entity_type"}}),ro.Mod(ro.ObjectNode({energy_budget:ro.NumberNode(),charge:ro.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:ro.MapNode(n({enum:["air","liquid"]}),ro.Mod(ro.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:ro.ListNode(ro.Mod(ro.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var oo={};Object.defineProperty(oo,"__esModule",{value:!0}),oo.initCarverSchemas=void 0;const ao=Pe,so=Sr;oo.initCarverSchemas=function(e,t){const n=ao.Reference.bind(void 0,e),i=ao.StringNode.bind(void 0,t),r={vertical_rotation:so.FloatProvider(),shape:ao.ObjectNode({distance_factor:so.FloatProvider(),thickness:so.FloatProvider(),width_smoothness:ao.NumberNode({integer:!0,min:0}),horizontal_radius_factor:so.FloatProvider(),vertical_radius_default_factor:ao.NumberNode(),vertical_radius_center_factor:ao.NumberNode()})},o={horizontal_radius_multiplier:so.FloatProvider(),vertical_radius_multiplier:so.FloatProvider(),floor_level:so.FloatProvider({min:-1,max:1})};e.register("configured_carver",ao.Mod(ao.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:ao.ObjectNode({probability:ao.NumberNode({min:0,max:1}),y:n("height_provider"),yScale:so.FloatProvider(),lava_level:n("vertical_anchor"),aquifers_enabled:ao.BooleanNode(),debug_settings:ao.Opt(ao.ObjectNode({debug_mode:ao.Opt(ao.BooleanNode()),air_state:ao.Opt(n("block_state")),water_state:ao.Opt(n("block_state")),lava_state:ao.Opt(n("block_state")),barrier_state:ao.Opt(n("block_state"))})),[ao.Switch]:["pop",{push:"type"}],[ao.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var co={};Object.defineProperty(co,"__esModule",{value:!0}),co.initDecoratorSchemas=void 0;const lo=Pe,uo=Sr;co.initDecoratorSchemas=function(e,t){const n=lo.Reference.bind(void 0,e),i=lo.StringNode.bind(void 0,t),r={count:uo.IntProvider({min:0,max:256})};e.register("configured_decorator",lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/decorator"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:cave_surface":{surface:i({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:lo.NumberNode({integer:!0})},"minecraft:chance":{chance:lo.NumberNode({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:lo.NumberNode({integer:!0,min:0}),extra_count:lo.NumberNode({integer:!0,min:0}),extra_chance:lo.NumberNode({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:lo.NumberNode(),below_noise:lo.NumberNode({integer:!0}),above_noise:lo.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:lo.NumberNode({integer:!0}),noise_factor:lo.NumberNode(),noise_offset:lo.Opt(lo.NumberNode())},"minecraft:decorated":{outer:n("configured_decorator"),inner:n("configured_decorator")},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:i({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:lo.NumberNode({integer:!0,min:0})},"minecraft:range":{height:n("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:lo.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ho={},po={};Object.defineProperty(po,"__esModule",{value:!0}),po.initProcessorListSchemas=po.Processors=void 0;const mo=Pe;po.initProcessorListSchemas=function(e,t){const n=mo.Reference.bind(void 0,e),i=mo.StringNode.bind(void 0,t);po.Processors=mo.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:n("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",mo.Mod(mo.ObjectNode({processors:mo.ListNode(n("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",mo.Mod(mo.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[mo.Switch]:[{push:"processor_type"}],[mo.Case]:{"minecraft:block_age":{mossiness:mo.NumberNode()},"minecraft:block_ignore":{blocks:mo.ListNode(n("block_state"))},"minecraft:block_rot":{integrity:mo.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:mo.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:mo.ListNode(n("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",mo.Mod(mo.ObjectNode({position_predicate:mo.Opt(n("pos_rule_test")),location_predicate:n("rule_test"),input_predicate:n("rule_test"),output_state:n("block_state"),output_nbt:mo.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:mo.Opt(mo.NumberNode({min:0,max:255,integer:!0})),max_dist:mo.Opt(mo.NumberNode({min:0,max:255,integer:!0})),min_chance:mo.Opt(mo.NumberNode({min:0,max:1})),max_chance:mo.Opt(mo.NumberNode({min:0,max:1}))};e.register("pos_rule_test",mo.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[mo.Switch]:[{push:"predicate_type"}],[mo.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",mo.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[mo.Switch]:[{push:"predicate_type"}],[mo.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:n("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:mo.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:n("block_state"),probability:mo.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ho,"__esModule",{value:!0}),ho.initFeatureSchemas=void 0;const fo=Pe,go=Sr,_o=po;ho.initFeatureSchemas=function(e,t){const n=fo.Reference.bind(void 0,e),i=fo.StringNode.bind(void 0,t),r={can_replace:fo.Opt(fo.BooleanNode()),project:fo.Opt(fo.BooleanNode()),need_water:fo.Opt(fo.BooleanNode()),xspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),yspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),zspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),tries:fo.Opt(fo.NumberNode({integer:!0,min:1})),state_provider:n("block_state_provider"),block_placer:n("block_placer"),whitelist:fo.ListNode(n("block_state")),blacklist:fo.ListNode(n("block_state"))},o={state:n("block_state"),radius:go.IntProvider({min:0,max:8}),half_height:fo.NumberNode({integer:!0,min:0,max:4}),targets:fo.ListNode(n("block_state"))},a={cap_provider:n("block_state_provider"),stem_provider:n("block_state_provider"),foliage_radius:fo.Opt(fo.NumberNode({integer:!0}))},s=fo.ObjectNode({target:n("rule_test"),state:n("block_state")}),c={size:fo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:fo.NumberNode({min:0,max:1}),targets:fo.ListNode(s)},l=fo.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:n("configured_feature")}],{choiceContext:"feature"}),u={surface:i({enum:["floor","ceiling"]}),depth:go.IntProvider({min:1,max:128}),vertical_range:fo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:fo.NumberNode({min:0,max:1}),extra_edge_column_chance:fo.NumberNode({min:0,max:1}),vegetation_chance:fo.NumberNode({min:0,max:1}),xz_radius:go.IntProvider(),replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),ground_state:n("block_state_provider"),vegetation_feature:l};e.register("configured_feature",fo.Mod(fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:fo.ObjectNode({[fo.Switch]:["pop",{push:"type"}],[fo.Case]:{"minecraft:bamboo":{probability:fo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:go.IntProvider({min:0,max:3}),height:go.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:n("block_state_provider")},"minecraft:decorated":{decorator:n("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:n("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:n("block_state"),rim:n("block_state"),size:go.IntProvider({min:0,max:16}),rim_size:go.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:fo.NumberNode({integer:!0,min:1,max:512}),height:go.IntProvider({min:0,max:128}),radius:go.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:fo.NumberNode({integer:!0,min:0,max:64}),height_deviation:fo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:go.IntProvider({min:0,max:128}),density:go.FloatProvider({min:0,max:2}),wetness:go.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:fo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:fo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:fo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:fo.BooleanNode(),exit:fo.Opt(n("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:fo.Opt(fo.BooleanNode()),crystal_beam_target:fo.Opt(n("block_pos")),spikes:fo.ListNode(fo.ObjectNode({centerX:fo.Opt(fo.NumberNode({integer:!0})),centerZ:fo.Opt(fo.NumberNode({integer:!0})),radius:fo.Opt(fo.NumberNode({integer:!0})),height:fo.Opt(fo.NumberNode({integer:!0})),guarded:fo.Opt(fo.BooleanNode())}))},"minecraft:fill_layer":{state:n("block_state"),height:fo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:n("block_state")},"minecraft:fossil":{max_empty_corners_allowed:fo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:fo.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:fo.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:_o.Processors,overlay_processors:_o.Processors},"minecraft:geode":{blocks:fo.ObjectNode({filling_provider:n("block_state_provider"),inner_layer_provider:n("block_state_provider"),alternate_inner_layer_provider:n("block_state_provider"),middle_layer_provider:n("block_state_provider"),outer_layer_provider:n("block_state_provider"),inner_placements:fo.ListNode(n("block_state")),cannot_replace:i({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:i({validator:"resource",params:{pool:"$tag/block"}})}),layers:fo.ObjectNode({filling:fo.Opt(fo.NumberNode({min:.01,max:50})),inner_layer:fo.Opt(fo.NumberNode({min:.01,max:50})),middle_layer:fo.Opt(fo.NumberNode({min:.01,max:50})),outer_layer:fo.Opt(fo.NumberNode({min:.01,max:50}))}),crack:fo.ObjectNode({generate_crack_chance:fo.Opt(fo.NumberNode({min:0,max:1})),base_crack_size:fo.Opt(fo.NumberNode({min:0,max:5})),crack_point_offset:fo.Opt(fo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:fo.Opt(fo.NumberNode({min:0,max:1})),use_potential_placements_chance:fo.Opt(fo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:fo.Opt(fo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:fo.Opt(fo.BooleanNode()),outer_wall_distance:fo.Opt(go.IntProvider({min:1,max:20})),distribution_points:fo.Opt(go.IntProvider({min:1,max:20})),point_offset:fo.Opt(go.IntProvider({min:0,max:10})),min_gen_offset:fo.Opt(fo.NumberNode({integer:!0})),max_gen_offset:fo.Opt(fo.NumberNode({integer:!0})),invalid_blocks_threshold:fo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:fo.Opt(fo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:fo.Opt(fo.NumberNode({min:0,max:1})),can_place_on_floor:fo.Opt(fo.BooleanNode()),can_place_on_ceiling:fo.Opt(fo.BooleanNode()),can_place_on_wall:fo.Opt(fo.BooleanNode()),can_be_placed_on:fo.ListNode(n("block_state"))},"minecraft:growing_plant":{direction:i({enum:["up","down","north","east","south","west"]}),allow_water:fo.BooleanNode(),height_distribution:fo.ListNode(fo.ObjectNode({weight:fo.NumberNode({integer:!0}),data:go.IntProvider()})),body_provider:n("block_state_provider"),head_provider:n("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:n("block_state"),decor_state:n("block_state"),stem_state:n("block_state"),valid_base_block:n("block_state"),planted:fo.Opt(fo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:n("block_state")},"minecraft:lake":{state:n("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:fo.Opt(fo.NumberNode({integer:!0,min:1,max:512})),column_radius:go.IntProvider({min:0,max:60}),height_scale:go.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:fo.NumberNode({min:0,max:1}),stalactite_bluntness:go.FloatProvider({min:.1,max:10}),stalagmite_bluntness:go.FloatProvider({min:.1,max:10}),wind_speed:go.FloatProvider({min:0,max:2}),min_radius_for_wind:fo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:fo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:n("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:n("block_state"),target:n("block_state"),radius:go.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":r,"minecraft:ore":c,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:fo.ListNode(fo.ObjectNode({chance:fo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:fo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:fo.NumberNode({integer:!0,min:1,max:64}),root_radius:fo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:fo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:fo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:fo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:fo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:fo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:fo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:n("block_state_provider"),hanging_root_state_provider:n("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:go.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:fo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:n("block_state_provider"),place_on:fo.Opt(fo.ListNode(n("block_state"))),place_in:fo.Opt(fo.ListNode(n("block_state"))),place_under:fo.Opt(fo.ListNode(n("block_state")))},"minecraft:simple_random_selector":{features:fo.ListNode(l)},"minecraft:small_dripstone":{max_placements:fo.Opt(fo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:fo.Opt(fo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:fo.Opt(fo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:fo.Opt(fo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:n("fluid_state"),rock_count:fo.NumberNode({integer:!0}),hole_count:fo.NumberNode({integer:!0}),requires_block_below:fo.BooleanNode(),valid_blocks:fo.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:fo.Opt(fo.BooleanNode()),force_dirt:fo.Opt(fo.BooleanNode()),minimum_size:n("feature_size"),dirt_provider:n("block_state_provider"),sapling_provider:n("block_state_provider"),trunk_provider:n("block_state_provider"),foliage_provider:n("block_state_provider"),trunk_placer:fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:fo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:fo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:fo.NumberNode({integer:!0,min:0,max:24}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:bending_trunk_placer":{bend_length:go.IntProvider({min:1,max:64}),min_height_for_leaves:fo.Opt(fo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:go.IntProvider({min:0,max:16}),offset:go.IntProvider({min:0,max:16}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:blob_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:go.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:go.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:go.IntProvider({min:1,max:512}),leaf_placement_attempts:fo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:go.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:fo.ListNode(fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:alter_ground":{provider:n("block_state_provider")},"minecraft:beehive":{probability:fo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:fo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:fo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:fo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:fo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",fo.Mod(fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:fo.Opt(fo.NumberNode({min:0,max:80})),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:two_layers_feature_size":{limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:81})),lower_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),upper_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:80})),upper_limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:80})),lower_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),middle_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),upper_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",fo.Mod(fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:randomized_int_state_provider":{property:i(),values:go.IntProvider(),source:n("block_state_provider")},"minecraft:rotated_block_provider":{state:n("block_state")},"minecraft:simple_state_provider":{state:n("block_state")},"minecraft:weighted_state_provider":{entries:fo.ListNode(fo.Mod(fo.ObjectNode({weight:fo.NumberNode({integer:!0,min:1}),data:n("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",fo.Mod(fo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:column_placer":{size:go.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initNoiseSettingsSchemas=void 0;const vo=Pe,yo=Sr;bo.initNoiseSettingsSchemas=function(e,t){const n=vo.Reference.bind(void 0,e),i=vo.StringNode.bind(void 0,t);e.register("noise_settings",vo.Mod(vo.ObjectNode({name:vo.Mod(i({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:vo.NumberNode({integer:!0}),bedrock_floor_position:vo.NumberNode({integer:!0}),sea_level:vo.NumberNode({integer:!0}),min_surface_level:vo.NumberNode({integer:!0}),disable_mob_generation:vo.BooleanNode(),noise_caves_enabled:vo.BooleanNode(),noodle_caves_enabled:vo.BooleanNode(),aquifers_enabled:vo.BooleanNode(),deepslate_enabled:vo.BooleanNode(),ore_veins_enabled:vo.BooleanNode(),default_block:n("block_state"),default_fluid:n("block_state"),noise:vo.ObjectNode({min_y:vo.NumberNode({integer:!0,min:-2048,max:2047}),height:vo.NumberNode({integer:!0,min:0,max:4096}),density_factor:vo.NumberNode(),density_offset:vo.NumberNode(),size_horizontal:vo.NumberNode({integer:!0}),size_vertical:vo.NumberNode({integer:!0}),simplex_surface_noise:vo.BooleanNode(),random_density_offset:vo.Opt(vo.BooleanNode()),island_noise_override:vo.Opt(vo.BooleanNode()),amplified:vo.Opt(vo.BooleanNode()),sampling:vo.ObjectNode({xz_scale:vo.NumberNode(),y_scale:vo.NumberNode(),xz_factor:vo.NumberNode(),y_factor:vo.NumberNode()}),bottom_slide:vo.ObjectNode({target:vo.NumberNode({integer:!0}),size:vo.NumberNode({integer:!0,min:0}),offset:vo.NumberNode({integer:!0})}),top_slide:vo.ObjectNode({target:vo.NumberNode({integer:!0}),size:vo.NumberNode({integer:!0,min:0}),offset:vo.NumberNode({integer:!0})})}),structures:n("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>yo.DefaultNoiseSettings,validate:(t,n,i,r)=>{var o,a,s,c;return(null===(o=null==(n=e.validate(t,n,i,r))?void 0:n.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==n?void 0:n.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==n?void 0:n.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==n?void 0:n.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),n}})))),e.register("generator_structures",vo.ObjectNode({stronghold:vo.Opt(vo.ObjectNode({distance:vo.NumberNode({integer:!0,min:0,max:1023}),spread:vo.NumberNode({integer:!0,min:0,max:1023}),count:vo.NumberNode({integer:!0,min:1,max:4095})})),structures:vo.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),vo.Mod(vo.ObjectNode({spacing:vo.NumberNode({integer:!0,min:0,max:4096}),separation:vo.Mod(vo.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,n,i,r)=>(t.pop().push("spacing").get()<=n&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,n,i,r))}))),salt:vo.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",vo.Mod(vo.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:vo.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var wo={};Object.defineProperty(wo,"__esModule",{value:!0}),wo.initStructureFeatureSchemas=void 0;const xo=Pe;wo.initStructureFeatureSchemas=function(e,t){const n=xo.StringNode.bind(void 0,t),i=xo.Reference.bind(void 0,e),r={start_pool:n({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:xo.NumberNode({integer:!0})};e.register("configured_structure_feature",xo.Mod(xo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:xo.ObjectNode({[xo.Switch]:["pop",{push:"type"}],[xo.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:xo.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:n({enum:["normal","mesa"]}),probability:xo.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:n({enum:["cold","warm"]}),large_probability:xo.NumberNode({min:0,max:1}),cluster_probability:xo.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:n({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:xo.Opt(xo.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Ao={};Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.initSurfaceBuilderSchemas=void 0;const No=Pe;Ao.initSurfaceBuilderSchemas=function(e,t){const n=No.StringNode.bind(void 0,t),i=No.Reference.bind(void 0,e);e.register("configured_surface_builder",No.Mod(No.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:No.ObjectNode({top_material:i("block_state"),under_material:i("block_state"),underwater_material:i("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var ko={};Object.defineProperty(ko,"__esModule",{value:!0}),ko.initTemplatePoolSchemas=void 0;const Co=Pe,Eo=po;ko.initTemplatePoolSchemas=function(e,t){const n=Co.Reference.bind(void 0,e),i=Co.StringNode.bind(void 0,t);e.register("template_pool",Co.Mod(Co.ObjectNode({name:i(),fallback:i(),elements:Co.ListNode(n("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Co.Mod(Co.ObjectNode({weight:Co.NumberNode({integer:!0,min:1}),element:n("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Co.Mod(Co.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[Co.Switch]:[{push:"element_type"}],[Co.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Eo.Processors},"minecraft:list_pool_element":{elements:Co.ListNode(n("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Eo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(no,"__esModule",{value:!0}),no.initWorldgenSchemas=void 0;const So=io,Oo=oo,Fo=co,Do=ho,Bo=bo,Lo=po,Mo=wo,To=Ao,Ro=ko;no.initWorldgenSchemas=function(e,t){Lo.initProcessorListSchemas(e,t),So.initBiomeSchemas(e,t),Oo.initCarverSchemas(e,t),Fo.initDecoratorSchemas(e,t),Do.initFeatureSchemas(e,t),Bo.initNoiseSettingsSchemas(e,t),Mo.initStructureFeatureSchemas(e,t),To.initSurfaceBuilderSchemas(e,t),Ro.initTemplatePoolSchemas(e,t)};var $o={};Object.defineProperty($o,"__esModule",{value:!0}),$o.initWorldSettingsSchemas=void 0;const Io=Pe;$o.initWorldSettingsSchemas=function(e,t){const n=Io.Reference.bind(void 0,e),i=Io.StringNode.bind(void 0,t);e.register("world_settings",Io.Mod(Io.ObjectNode({generate_features:Io.BooleanNode(),bonus_chest:Io.BooleanNode(),seed:Io.NumberNode({integer:!0}),dimensions:Io.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),n("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(br,"__esModule",{value:!0}),br.initSchemas=void 0;const jo=vr,Po=wr,zo=Sr,Uo=Or,Wo=Br,Ho=Tr,Vo=Ir,Go=zr,qo=Gr,Ko=Kr,Xo=Jr,Jo=Zr,Yo=eo,Zo=no,Qo=$o;br.initSchemas=function(e,t){zo.initCommonSchemas(e,t),jo.initAdvancementSchemas(e,t),Po.initAssetsSchemas(e,t),Uo.initConditionSchemas(e,t),Ho.initDimensionTypeSchemas(e,t),Wo.initDimensionSchemas(e,t),Vo.initItemModifierSchemas(e,t),Go.initLootTableSchemas(e,t),qo.initPackMcmetaSchemas(e,t),Ko.initPredicatesSchemas(e,t),Xo.initRecipeSchemas(e,t),Jo.initTagsSchemas(e,t),Yo.initTextComponentSchemas(e,t),Zo.initWorldgenSchemas(e,t),Qo.initWorldSettingsSchemas(e,t)};var ea=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),ta=je&&je.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),na=je&&je.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&ea(t,e,n);return ta(t,e),t};Object.defineProperty(gr,"__esModule",{value:!0});var ia=gr.getSchemas=gr.getCollections=void 0;const ra=Pe,oa=_r,aa=br;var sa=gr.lootContext=na(Ur);var ca=gr.getCollections=function(){const e=new ra.CollectionRegistry;return oa.initCollections(e),e};ia=gr.getSchemas=function(e){const t=new ra.SchemaRegistry;return aa.initSchemas(t,e),t};var la=Object.freeze(Object.assign(Object.create(null),gr,{[Symbol.toStringTag]:"Module",get getSchemas(){return ia},get getCollections(){return ca},lootContext:sa,default:gr})),ua={},da={};Object.defineProperty(da,"__esModule",{value:!0}),da.initCollections=void 0,da.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var ha={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initAdvancementSchemas=void 0;const ma=Pe;pa.initAdvancementSchemas=function(e,t){const n=ma.Reference.bind(void 0,e),i=ma.StringNode.bind(void 0,t),r=ma.ChoiceNode([{type:"object",node:ma.Opt(n("entity_predicate")),change:e=>{var t,n;return null!==(n=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==n?n:{}}},{type:"list",node:ma.ListNode(n("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",ma.Mod(ma.ObjectNode({display:ma.Opt(ma.Mod(ma.ObjectNode({icon:ma.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:ma.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:n("text_component"),description:n("text_component"),background:ma.Opt(i()),frame:ma.Opt(i({enum:["task","challenge","goal"]})),show_toast:ma.Opt(ma.BooleanNode()),announce_to_chat:ma.Opt(ma.BooleanNode()),hidden:ma.Opt(ma.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ma.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:ma.MapNode(i(),n("advancement_criteria")),requirements:ma.Opt(ma.ListNode(ma.ListNode(i()))),rewards:ma.Opt(ma.ObjectNode({function:ma.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:ma.Opt(ma.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ma.Opt(ma.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:ma.Opt(ma.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ma.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ma.Opt(ma.ObjectNode({player:ma.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ma.Switch]:["pop",{push:"trigger"}],[ma.Case]:{"minecraft:bee_nest_destroyed":{block:ma.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:ma.Opt(ma.NumberNode({integer:!0})),item:ma.Opt(n("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:ma.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ma.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:ma.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:ma.Opt(ma.ListNode(r))},"minecraft:construct_beacon":{level:n("int_bounds")},"minecraft:consume_item":{item:ma.Opt(n("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:ma.Opt(ma.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),ma.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds")}))),source:ma.Opt(r)},"minecraft:enter_block":{block:ma.Opt(i({validator:"resource",params:{pool:"block"}})),state:ma.Opt(ma.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:n("int_bounds"),item:ma.Opt(n("item_predicate"))},"minecraft:entity_hurt_player":{damage:ma.Opt(n("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:ma.Opt(n("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:ma.Opt(n("location_predicate")),distance:ma.Opt(n("distance_predicate"))},"minecraft:filled_bucket":{item:ma.Opt(n("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:ma.Opt(n("item_predicate"))},"minecraft:hero_of_the_village":{location:ma.Opt(n("location_predicate"))},"minecraft:inventory_changed":{slots:ma.Opt(ma.ObjectNode({empty:n("int_bounds"),occupied:n("int_bounds"),full:n("int_bounds")})),items:ma.Opt(ma.ListNode(n("item_predicate")))},"minecraft:item_durability_changed":{delta:n("int_bounds"),durability:n("int_bounds"),item:ma.Opt(n("item_predicate"))},"minecraft:item_used_on_block":{item:ma.Opt(n("item_predicate")),location:ma.Opt(n("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:n("int_bounds"),victims:ma.Opt(ma.ListNode(r))},"minecraft:levitation":{distance:ma.Opt(n("distance_predicate")),duration:n("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:ma.Opt(n("location_predicate"))},"minecraft:nether_travel":{start_position:ma.Opt(n("location_predicate")),distance:ma.Opt(n("distance_predicate"))},"minecraft:placed_block":{block:ma.Opt(i({validator:"resource",params:{pool:"block"}})),state:ma.Opt(ma.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ma.Opt(n("item_predicate")),location:ma.Opt(n("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:ma.Opt(n("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:ma.Opt(n("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:ma.Opt(n("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:ma.Opt(n("location_predicate")),distance:ma.Opt(n("distance_predicate"))},"minecraft:slept_in_bed":{location:ma.Opt(n("location_predicate"))},"minecraft:slide_down_block":{block:ma.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ma.Opt(n("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:n("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:ma.Opt(n("entity_predicate")),item:ma.Opt(n("item_predicate"))},"minecraft:used_ender_eye":{distance:ma.Opt(n("float_bounds"))},"minecraft:used_totem":{item:ma.Opt(n("item_predicate"))},"minecraft:using_item":{item:ma.Opt(n("item_predicate"))},"minecraft:villager_trade":{villager:ma.Opt(n("entity_predicate")),item:ma.Opt(n("item_predicate"))},"minecraft:voluntary_exile":{location:ma.Opt(n("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var fa={},ga={};Object.defineProperty(ga,"__esModule",{value:!0}),ga.initModelSchemas=void 0;const _a=Pe;ga.initModelSchemas=function(e,t){_a.Reference.bind(void 0,e);const n=_a.StringNode.bind(void 0,t),i=(e,t,n)=>_a.ListNode(_a.NumberNode({min:t,max:n}),{minLength:e,maxLength:e}),r=_a.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:n(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:n({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",_a.Mod(_a.ObjectNode({parent:_a.Opt(n({validator:"resource",params:{pool:"$model"}})),ambientocclusion:_a.Opt(_a.BooleanNode()),gui_light:_a.Opt(n({enum:"gui_light"})),textures:_a.Opt(_a.MapNode(n(),r)),elements:_a.Opt(_a.ListNode(_a.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:_a.Opt(_a.ObjectNode({origin:i(3),axis:n({enum:"axis"}),angle:_a.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:_a.Opt(_a.BooleanNode())})),shade:_a.Opt(_a.BooleanNode()),faces:_a.MapNode(n({enum:"direction"}),_a.ObjectNode({texture:r,uv:_a.Opt(i(4)),cullface:_a.Opt(n({enum:"direction"})),rotation:_a.Opt(_a.NumberNode({integer:!0})),tintindex:_a.Opt(_a.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:_a.Opt(_a.MapNode(n({enum:"display_position"}),_a.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:_a.Opt(_a.ListNode(_a.ObjectNode({predicate:_a.MapNode(n({enum:"item_model_predicates"}),_a.NumberNode()),model:n({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initBlockDefinitionSchemas=void 0;const va=Pe;ba.initBlockDefinitionSchemas=function(e,t){const n=va.Reference.bind(void 0,e),i=va.StringNode.bind(void 0,t);e.register("block_definition",va.Mod(va.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:va.ObjectNode({variants:va.MapNode(i(),n("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:va.ObjectNode({multipart:va.ListNode(va.ObjectNode({when:va.Opt(n("multipart_condition")),apply:n("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:i({validator:"resource",params:{pool:"$model"}}),x:va.Opt(va.NumberEnum({integer:!0,values:[0,90,180,270]})),y:va.Opt(va.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:va.Opt(va.BooleanNode())};e.register("model_variant",va.ChoiceNode([{type:"object",node:va.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:va.ListNode(va.ObjectNode(c(s({},r),{weight:va.Opt(va.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",va.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:va.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:va.ObjectNode({OR:va.ListNode(n("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(fa,"__esModule",{value:!0}),fa.initAssetsSchemas=void 0;const ya=ga,wa=ba;fa.initAssetsSchemas=function(e,t){wa.initBlockDefinitionSchemas(e,t),ya.initModelSchemas(e,t)};var xa={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const n={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:n}},e.initCommonSchemas=function(i,r){const o=t.StringNode.bind(void 0,r),a=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,n;return void 0===e?0:null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",c(!0)),i.register("float_bounds",c()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,n,i,r,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:n,node:l[r][i]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var n;if("minecraft:"+(null===(n=null==t?void 0:t.type)||void 0===n?void 0:n.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var n,i,r;return{[e]:null!==(r=null!==(i=null!==(n=t.absolute)&&void 0!==n?n:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,n=o({enum:"copy_source"}),i=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:r.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:n},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:i},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(i),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(i),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return r.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=n=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),n,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:n}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:n}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:n}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:n}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:n}}})}}(xa);var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initConditionSchemas=void 0;const Na=Pe,ka=xa;Aa.initConditionSchemas=function(e,t){const n=Na.Reference.bind(void 0,e),i=Na.StringNode.bind(void 0,t);e.register("predicate",Na.ObjectOrList(n("condition"),{choiceContext:"condition"})),e.register("condition",Na.Mod(Na.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Na.Switch]:[{push:"condition"}],[Na.Case]:ka.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ca={};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.initDimensionSchemas=void 0;const Ea=Pe,Sa=xa;Ca.initDimensionSchemas=function(e,t){const n=Ea.Reference.bind(void 0,e),i=Ea.StringNode.bind(void 0,t);e.register("dimension",Ea.Mod(Ea.ObjectNode({type:Sa.DimensionTypePresets(n("dimension_type")),generator:Ea.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:noise":{seed:Ea.NumberNode({integer:!0}),settings:Sa.NoiseSettingsPresets(n("noise_settings")),biome_source:Ea.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Ea.Switch]:[{push:"type"}],[Ea.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Ea.Opt(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Ea.Mod(Ea.ListNode(n("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Ea.Opt(Ea.NumberNode({integer:!0,min:0,max:62})),biomes:Ea.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Ea.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Ea.ObjectNode({biome:Ea.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Ea.Opt(Ea.BooleanNode()),features:Ea.Opt(Ea.BooleanNode()),layers:Ea.ListNode(n("generator_layer")),structures:n("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=Ea.ChoiceNode([{type:"number",node:Ea.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Ea.ListNode(Ea.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Ea.Mod(Ea.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Ea.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:Ea.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Oa={};Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.initDimensionTypeSchemas=void 0;const Fa=Pe,Da=xa;Oa.initDimensionTypeSchemas=function(e,t){const n=Fa.StringNode.bind(void 0,t);e.register("dimension_type",Fa.Mod(Fa.ObjectNode({ultrawarm:Fa.BooleanNode(),natural:Fa.BooleanNode(),piglin_safe:Fa.BooleanNode(),respawn_anchor_works:Fa.BooleanNode(),bed_works:Fa.BooleanNode(),has_raids:Fa.BooleanNode(),has_skylight:Fa.BooleanNode(),has_ceiling:Fa.BooleanNode(),coordinate_scale:Fa.NumberNode({min:1e-5,max:3e7}),ambient_light:Fa.NumberNode(),fixed_time:Fa.Opt(Fa.NumberNode({integer:!0})),logical_height:Fa.NumberNode({integer:!0,min:0,max:4096}),effects:Fa.Opt(n({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:n({validator:"resource",params:{pool:"$tag/block"}}),min_y:Fa.NumberNode({integer:!0,min:-2048,max:2047}),height:Fa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Da.DefaultDimensionType,validate:(t,n,i,r)=>((null==(n=e.validate(t,n,i,r))?void 0:n.min_y)+(null==n?void 0:n.height)>2047&&i.add(t.push("height"),"error.min_y_plus_height",2047),(null==n?void 0:n.logical_height)>(null==n?void 0:n.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==n?void 0:n.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==n?void 0:n.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),n)}))))};var Ba={};Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.initItemModifierSchemas=void 0;const La=Pe,Ma=xa;Ba.initItemModifierSchemas=function(e,t){const n=La.Reference.bind(void 0,e),i=La.StringNode.bind(void 0,t);e.register("item_modifier",La.ObjectOrList(n("function"),{choiceContext:"function"}));const r={conditions:La.Opt(La.ListNode(n("condition")))};e.register("function",La.Mod(La.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[La.Switch]:[{push:"function"}],[La.Case]:Ma.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ta={},Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.LootFunctions=Ra.LootConditions=Ra.LootCopySources=Ra.LootEntitySources=Ra.LootTableTypes=void 0,Ra.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ra.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ra.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ra.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ra.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.initLootTableSchemas=void 0;const $a=Pe,Ia=Ra,ja=xa;Ta.initLootTableSchemas=function(e,t){const n=$a.Reference.bind(void 0,e),i=$a.StringNode.bind(void 0,t),r={conditions:$a.Opt($a.ListNode(n("loot_condition")))},o=s({functions:$a.Opt($a.ListNode(n("loot_function")))},r);function a(e,n,i){const r=[],o=i=>t.get(n).filter((t=>{var n;return(null!==(n=e.get(t))&&void 0!==n?n:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ia.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new $a.Path(["type"]))===t,node:i(o(e))})}return r.push({match:e=>!0,node:i(n)}),$a.SwitchNode(r)}const c=a(Ia.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ia.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ia.LootEntitySources,"entity_source",(e=>i({enum:e}))),d=a(Ia.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",$a.Mod($a.ObjectNode({type:$a.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:$a.Opt($a.ListNode($a.Mod($a.ObjectNode(s({rolls:n("number_provider"),bonus_rolls:$a.Opt(n("number_provider")),entries:$a.ListNode(n("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:$a.Opt($a.ListNode(n("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",$a.Mod($a.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:$a.Opt($a.Mod($a.NumberNode({integer:!0,min:1}),h)),quality:$a.Opt($a.Mod($a.NumberNode({integer:!0}),h)),[$a.Switch]:[{push:"type"}],[$a.Case]:{"minecraft:alternatives":s({children:$a.ListNode(n("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:$a.ListNode(n("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:$a.ListNode(n("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:$a.Opt($a.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",$a.Mod($a.ObjectNode({function:l,[$a.Switch]:[{push:"function"}],[$a.Case]:ja.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",$a.Mod($a.ObjectNode({condition:c,[$a.Switch]:[{push:"condition"}],[$a.Case]:ja.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",$a.Mod($a.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:n("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:$a.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.initPackMcmetaSchemas=void 0;const za=Pe;Pa.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",za.Mod(za.ObjectNode({pack:za.Mod(za.ObjectNode({pack_format:za.Mod(za.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:za.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initPredicatesSchemas=void 0;const Wa=Pe;Ua.initPredicatesSchemas=function(e,t){const n=Wa.Reference.bind(void 0,e),i=Wa.StringNode.bind(void 0,t),r=Wa.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Wa.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Wa.ObjectNode({min:Wa.Opt(Wa.NumberNode({integer:!0})),max:Wa.Opt(Wa.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Wa.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Wa.ObjectNode({items:Wa.Opt(Wa.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:Wa.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:n("int_bounds"),durability:n("int_bounds"),potion:Wa.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Wa.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Wa.Opt(Wa.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Wa.ObjectNode({enchantment:Wa.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:n("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Wa.ObjectNode({blocks:Wa.Opt(Wa.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:Wa.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Wa.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Wa.Opt(Wa.MapNode(i(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Wa.ObjectNode({fluid:Wa.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Wa.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Wa.Opt(Wa.MapNode(i(),r))},{context:"fluid"})),e.register("location_predicate",Wa.ObjectNode({position:Wa.Opt(Wa.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds")})),biome:Wa.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Wa.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Wa.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Wa.Opt(Wa.ObjectNode({light:n("int_bounds")})),smokey:Wa.Opt(Wa.BooleanNode()),block:Wa.Opt(n("block_predicate")),fluid:Wa.Opt(n("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Wa.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:n("int_bounds"),[Wa.Switch]:[{push:"type"}],[Wa.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Wa.ObjectNode({gamemode:Wa.Opt(i({enum:"gamemode"})),level:n("int_bounds"),advancements:Wa.Opt(Wa.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Wa.ChoiceNode([{type:"boolean",node:Wa.BooleanNode(),change:e=>!0},{type:"object",node:Wa.MapNode(i(),Wa.BooleanNode())}]))),recipes:Wa.Opt(Wa.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Wa.BooleanNode())),stats:Wa.Opt(Wa.ListNode(n("statistic_predicate"))),looking_at:Wa.Opt(n("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Wa.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds"),ambient:Wa.Opt(Wa.BooleanNode()),visible:Wa.Opt(Wa.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Wa.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds"),absolute:n("float_bounds"),horizontal:n("float_bounds")},{context:"distance"})),e.register("entity_predicate",Wa.ObjectNode({type:Wa.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Wa.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Wa.Opt(i({validator:"team"})),location:Wa.Opt(n("location_predicate")),stepping_on:Wa.Opt(n("location_predicate")),distance:Wa.Opt(n("distance_predicate")),flags:Wa.Opt(Wa.ObjectNode({is_on_fire:Wa.Opt(Wa.BooleanNode()),is_sneaking:Wa.Opt(Wa.BooleanNode()),is_sprinting:Wa.Opt(Wa.BooleanNode()),is_swimming:Wa.Opt(Wa.BooleanNode()),is_baby:Wa.Opt(Wa.BooleanNode())})),equipment:Wa.Opt(Wa.MapNode(i({enum:"slot"}),n("item_predicate"))),player:Wa.Opt(n("player_predicate")),vehicle:Wa.Opt(n("entity_predicate")),passenger:Wa.Opt(n("entity_predicate")),targeted_entity:Wa.Opt(n("entity_predicate")),lightning_bolt:Wa.Opt(Wa.ObjectNode({blocks_set_on_fire:Wa.Opt(n("int_bounds")),entity_struck:Wa.Opt(n("entity_predicate"))})),fishing_hook:Wa.Opt(Wa.ObjectNode({in_open_water:Wa.Opt(Wa.BooleanNode())})),effects:Wa.Opt(Wa.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Wa.ObjectNode({is_explosion:Wa.Opt(Wa.BooleanNode()),is_fire:Wa.Opt(Wa.BooleanNode()),is_magic:Wa.Opt(Wa.BooleanNode()),is_projectile:Wa.Opt(Wa.BooleanNode()),is_lightning:Wa.Opt(Wa.BooleanNode()),bypasses_armor:Wa.Opt(Wa.BooleanNode()),bypasses_invulnerability:Wa.Opt(Wa.BooleanNode()),bypasses_magic:Wa.Opt(Wa.BooleanNode()),source_entity:Wa.Opt(n("entity_predicate")),direct_entity:Wa.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Wa.ObjectNode({dealt:n("float_bounds"),taken:n("float_bounds"),blocked:Wa.Opt(Wa.BooleanNode()),source_entity:Wa.Opt(n("entity_predicate")),type:Wa.Opt(n("damage_source_predicate"))},{context:"damage"}))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initRecipeSchemas=void 0;const Va=Pe;Ha.initRecipeSchemas=function(e,t){const n=Va.Reference.bind(void 0,e),i=Va.StringNode.bind(void 0,t);e.register("recipe",Va.Mod(Va.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Va.Switch]:[{push:"type"}],[Va.Case]:{"minecraft:crafting_shaped":{group:Va.Opt(i({enum:"recipe_group",additional:!0})),pattern:Va.ListNode(i()),key:Va.MapNode(i(),n("recipe_ingredient")),result:n("recipe_result")},"minecraft:crafting_shapeless":{group:Va.Opt(i()),ingredients:Va.ListNode(n("recipe_ingredient")),result:n("recipe_result")},"minecraft:smelting":{group:Va.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Va.Opt(Va.NumberNode()),cookingtime:Va.Opt(Va.Mod(Va.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Va.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Va.Opt(Va.NumberNode()),cookingtime:Va.Opt(Va.Mod(Va.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Va.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Va.Opt(Va.NumberNode()),cookingtime:Va.Opt(Va.Mod(Va.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Va.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Va.Opt(Va.NumberNode()),cookingtime:Va.Opt(Va.Mod(Va.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Va.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Va.NumberNode({integer:!0})},"minecraft:smithing":{group:Va.Opt(i()),base:n("recipe_ingredient_object"),addition:n("recipe_ingredient_object"),result:n("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Va.Mod(Va.ChoiceNode([{type:"object",node:n("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Va.ListNode(n("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Va.Mod(Va.ObjectNode({item:Va.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Va.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Va.Mod(Va.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Va.Opt(Va.Mod(Va.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.initTagsSchemas=void 0;const qa=Pe;Ga.initTagsSchemas=function(e,t){const n=qa.StringNode.bind(void 0,t),i=e=>qa.Mod(qa.ObjectNode({replace:qa.Opt(qa.BooleanNode()),values:qa.ListNode(qa.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:qa.ObjectNode({id:n({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:qa.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item"))};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.initTextComponentSchemas=void 0;const Xa=Pe;Ka.initTextComponentSchemas=function(e,t){const n=Xa.Reference.bind(void 0,e),i=Xa.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Xa.Mod(Xa.ChoiceNode([{type:"object",node:n("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:n("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:r},{type:"number",node:Xa.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Xa.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Xa.Opt(i()),font:Xa.Opt(i()),bold:Xa.Opt(Xa.BooleanNode()),italic:Xa.Opt(Xa.BooleanNode()),underlined:Xa.Opt(Xa.BooleanNode()),strikethrough:Xa.Opt(Xa.BooleanNode()),obfuscated:Xa.Opt(Xa.BooleanNode()),insertion:Xa.Opt(i()),clickEvent:Xa.Opt(Xa.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Xa.Opt(Xa.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{show_text:{value:Xa.Opt(n("text_component")),contents:Xa.Opt(n("text_component"))},show_item:{value:Xa.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Xa.Opt(Xa.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:Xa.Opt(Xa.NumberNode({integer:!0})),tag:Xa.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Xa.Opt(Xa.ObjectNode({name:Xa.Opt(i()),type:Xa.Opt(i()),id:Xa.Opt(i())})),contents:Xa.Opt(Xa.Mod(Xa.ObjectNode({name:Xa.Opt(n("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Xa.Opt(n("text_component_list"))};e.register("text_component_object",Xa.Mod(Xa.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Xa.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Xa.ObjectNode(s({translate:i(),with:Xa.Opt(n("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Xa.ObjectNode(s({score:Xa.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:Xa.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Xa.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Xa.Opt(n("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Xa.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Xa.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:Xa.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Xa.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Xa.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:Xa.Opt(Xa.BooleanNode()),separator:Xa.Opt(n("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Xa.Mod(Xa.ListNode(n("text_component")),{default:()=>[{text:""}]}))};var Ja={},Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initBiomeSchemas=void 0;const Za=Pe;Ya.initBiomeSchemas=function(e,t){const n=Za.StringNode.bind(void 0,t);e.register("biome",Za.Mod(Za.ObjectNode({temperature:Za.NumberNode(),downfall:Za.NumberNode(),precipitation:n({enum:["none","rain","snow"]}),temperature_modifier:Za.Opt(n({enum:["none","frozen"]})),category:n({enum:"biome_category"}),creature_spawn_probability:Za.Opt(Za.NumberNode({min:0,max:1})),effects:Za.ObjectNode({sky_color:Za.NumberNode({color:!0}),fog_color:Za.NumberNode({color:!0}),water_color:Za.NumberNode({color:!0}),water_fog_color:Za.NumberNode({color:!0}),grass_color:Za.Opt(Za.NumberNode({color:!0})),foliage_color:Za.Opt(Za.NumberNode({color:!0})),grass_color_modifier:Za.Opt(n({enum:["none","dark_forest","swamp"]})),ambient_sound:Za.Opt(n()),mood_sound:Za.Opt(Za.ObjectNode({sound:n(),tick_delay:Za.NumberNode({integer:!0}),block_search_extent:Za.NumberNode({integer:!0}),offset:Za.NumberNode()})),additions_sound:Za.Opt(Za.ObjectNode({sound:n(),tick_chance:Za.NumberNode({min:0,max:1})})),music:Za.Opt(Za.ObjectNode({sound:n(),min_delay:Za.NumberNode({integer:!0,min:0}),max_delay:Za.NumberNode({integer:!0,min:0}),replace_current_music:Za.BooleanNode()})),particle:Za.Opt(Za.ObjectNode({options:Za.ObjectNode({type:n()}),probability:Za.NumberNode({min:0,max:1})}))}),spawners:Za.MapNode(n({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Za.Mod(Za.ListNode(Za.ObjectNode({type:n({validator:"resource",params:{pool:"entity_type"}}),weight:Za.NumberNode({integer:!0}),minCount:Za.NumberNode({integer:!0}),maxCount:Za.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Za.MapNode(n({validator:"resource",params:{pool:"entity_type"}}),Za.Mod(Za.ObjectNode({energy_budget:Za.NumberNode(),charge:Za.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Za.MapNode(n({enum:["air","liquid"]}),Za.Mod(Za.ListNode(n({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Za.ListNode(Za.Mod(Za.ListNode(n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initCarverSchemas=void 0;const es=Pe,ts=xa;Qa.initCarverSchemas=function(e,t){const n=es.Reference.bind(void 0,e),i=es.StringNode.bind(void 0,t),r={vertical_rotation:ts.FloatProvider(),shape:es.ObjectNode({distance_factor:ts.FloatProvider(),thickness:ts.FloatProvider(),width_smoothness:es.NumberNode({integer:!0,min:0}),horizontal_radius_factor:ts.FloatProvider(),vertical_radius_default_factor:es.NumberNode(),vertical_radius_center_factor:es.NumberNode()})},o={horizontal_radius_multiplier:ts.FloatProvider(),vertical_radius_multiplier:ts.FloatProvider(),floor_level:ts.FloatProvider({min:-1,max:1})};e.register("configured_carver",es.Mod(es.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:es.ObjectNode({probability:es.NumberNode({min:0,max:1}),y:n("height_provider"),yScale:ts.FloatProvider(),lava_level:n("vertical_anchor"),debug_settings:es.Opt(es.ObjectNode({debug_mode:es.Opt(es.BooleanNode()),air_state:es.Opt(n("block_state")),water_state:es.Opt(n("block_state")),lava_state:es.Opt(n("block_state")),barrier_state:es.Opt(n("block_state"))})),[es.Switch]:["pop",{push:"type"}],[es.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var ns={};Object.defineProperty(ns,"__esModule",{value:!0}),ns.initDecoratorSchemas=void 0;const is=Pe,rs=xa;ns.initDecoratorSchemas=function(e,t){const n=is.Reference.bind(void 0,e),i=is.StringNode.bind(void 0,t);e.register("decorator",is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:block_predicate_filter":{predicate:n("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:is.NumberNode({integer:!0,min:0})},"minecraft:count":{count:rs.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:rs.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:is.NumberNode(),below_noise:is.NumberNode({integer:!0}),above_noise:is.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:is.NumberNode({integer:!0}),noise_factor:is.NumberNode(),noise_offset:is.Opt(is.NumberNode())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:is.NumberNode({integer:!0,min:1,max:32}),target_condition:n("block_predicate_worldgen"),allowed_search_condition:is.Opt(n("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:n("height_provider")},"minecraft:random_offset":{xz_spread:rs.IntProvider({min:-16,max:16}),y_spread:rs.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:is.Opt(is.NumberNode({integer:!0})),max_inclusive:is.Opt(is.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:is.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var os={},as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initProcessorListSchemas=as.Processors=void 0;const ss=Pe;as.initProcessorListSchemas=function(e,t){const n=ss.Reference.bind(void 0,e),i=ss.StringNode.bind(void 0,t);as.Processors=ss.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:n("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",ss.Mod(ss.ObjectNode({processors:ss.ListNode(n("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",ss.Mod(ss.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[ss.Switch]:[{push:"processor_type"}],[ss.Case]:{"minecraft:block_age":{mossiness:ss.NumberNode()},"minecraft:block_ignore":{blocks:ss.ListNode(n("block_state"))},"minecraft:block_rot":{integrity:ss.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:ss.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:ss.ListNode(n("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",ss.Mod(ss.ObjectNode({position_predicate:ss.Opt(n("pos_rule_test")),location_predicate:n("rule_test"),input_predicate:n("rule_test"),output_state:n("block_state"),output_nbt:ss.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:ss.Opt(ss.NumberNode({min:0,max:255,integer:!0})),max_dist:ss.Opt(ss.NumberNode({min:0,max:255,integer:!0})),min_chance:ss.Opt(ss.NumberNode({min:0,max:1})),max_chance:ss.Opt(ss.NumberNode({min:0,max:1}))};e.register("pos_rule_test",ss.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[ss.Switch]:[{push:"predicate_type"}],[ss.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",ss.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[ss.Switch]:[{push:"predicate_type"}],[ss.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:n("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:ss.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:n("block_state"),probability:ss.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(os,"__esModule",{value:!0}),os.initFeatureSchemas=void 0;const cs=Pe,ls=xa,us=as;os.initFeatureSchemas=function(e,t){const n=cs.Reference.bind(void 0,e),i=cs.StringNode.bind(void 0,t),r=cs.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:n("configured_feature")}],{choiceContext:"feature"}),o=cs.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:n("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:cs.Opt(cs.NumberNode({integer:!0,min:1})),xz_spread:cs.Opt(cs.NumberNode({integer:!0,min:0})),y_spread:cs.Opt(cs.NumberNode({integer:!0,min:0})),feature:o},l={state:n("block_state"),radius:ls.IntProvider({min:0,max:8}),half_height:cs.NumberNode({integer:!0,min:0,max:4}),targets:cs.ListNode(n("block_state"))},u={cap_provider:n("block_state_provider"),stem_provider:n("block_state_provider"),foliage_radius:cs.Opt(cs.NumberNode({integer:!0}))},d=cs.ObjectNode({target:n("rule_test"),state:n("block_state")}),h={size:cs.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:cs.NumberNode({min:0,max:1}),targets:cs.ListNode(d)},p={surface:i({enum:"cave_surface"}),depth:ls.IntProvider({min:1,max:128}),vertical_range:cs.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:cs.NumberNode({min:0,max:1}),extra_edge_column_chance:cs.NumberNode({min:0,max:1}),vegetation_chance:cs.NumberNode({min:0,max:1}),xz_radius:ls.IntProvider(),replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),ground_state:n("block_state_provider"),vegetation_feature:o};e.register("configured_feature",cs.Mod(cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:cs.ObjectNode({[cs.Switch]:["pop",{push:"type"}],[cs.Case]:{"minecraft:bamboo":{probability:cs.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:ls.IntProvider({min:0,max:3}),height:ls.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:n("block_predicate_worldgen"),prioritize_tip:cs.BooleanNode(),layers:cs.ListNode(cs.ObjectNode({height:ls.IntProvider({min:0}),provider:n("block_state_provider")}))},"minecraft:block_pile":{state_provider:n("block_state_provider")},"minecraft:delta_feature":{contents:n("block_state"),rim:n("block_state"),size:ls.IntProvider({min:0,max:16}),rim_size:ls.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:cs.NumberNode({integer:!0,min:1,max:512}),height:ls.IntProvider({min:0,max:128}),radius:ls.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:cs.NumberNode({integer:!0,min:0,max:64}),height_deviation:cs.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:ls.IntProvider({min:0,max:128}),density:ls.FloatProvider({min:0,max:2}),wetness:ls.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:cs.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:cs.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:cs.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:cs.BooleanNode(),exit:cs.Opt(n("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:cs.Opt(cs.BooleanNode()),crystal_beam_target:cs.Opt(n("block_pos")),spikes:cs.ListNode(cs.ObjectNode({centerX:cs.Opt(cs.NumberNode({integer:!0})),centerZ:cs.Opt(cs.NumberNode({integer:!0})),radius:cs.Opt(cs.NumberNode({integer:!0})),height:cs.Opt(cs.NumberNode({integer:!0})),guarded:cs.Opt(cs.BooleanNode())}))},"minecraft:fill_layer":{state:n("block_state"),height:cs.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:n("block_state")},"minecraft:fossil":{max_empty_corners_allowed:cs.NumberNode({integer:!0,min:0,max:7}),fossil_structures:cs.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:cs.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:us.Processors,overlay_processors:us.Processors},"minecraft:geode":{blocks:cs.ObjectNode({filling_provider:n("block_state_provider"),inner_layer_provider:n("block_state_provider"),alternate_inner_layer_provider:n("block_state_provider"),middle_layer_provider:n("block_state_provider"),outer_layer_provider:n("block_state_provider"),inner_placements:cs.ListNode(n("block_state")),cannot_replace:i({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:i({validator:"resource",params:{pool:"$tag/block"}})}),layers:cs.ObjectNode({filling:cs.Opt(cs.NumberNode({min:.01,max:50})),inner_layer:cs.Opt(cs.NumberNode({min:.01,max:50})),middle_layer:cs.Opt(cs.NumberNode({min:.01,max:50})),outer_layer:cs.Opt(cs.NumberNode({min:.01,max:50}))}),crack:cs.ObjectNode({generate_crack_chance:cs.Opt(cs.NumberNode({min:0,max:1})),base_crack_size:cs.Opt(cs.NumberNode({min:0,max:5})),crack_point_offset:cs.Opt(cs.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:cs.Opt(cs.NumberNode({min:0,max:1})),use_potential_placements_chance:cs.Opt(cs.NumberNode({min:0,max:1})),use_alternate_layer0_chance:cs.Opt(cs.NumberNode({min:0,max:1})),placements_require_layer0_alternate:cs.Opt(cs.BooleanNode()),outer_wall_distance:cs.Opt(ls.IntProvider({min:1,max:20})),distribution_points:cs.Opt(ls.IntProvider({min:1,max:20})),point_offset:cs.Opt(ls.IntProvider({min:0,max:10})),min_gen_offset:cs.Opt(cs.NumberNode({integer:!0})),max_gen_offset:cs.Opt(cs.NumberNode({integer:!0})),invalid_blocks_threshold:cs.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:cs.Opt(cs.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:cs.Opt(cs.NumberNode({min:0,max:1})),can_place_on_floor:cs.Opt(cs.BooleanNode()),can_place_on_ceiling:cs.Opt(cs.BooleanNode()),can_place_on_wall:cs.Opt(cs.BooleanNode()),can_be_placed_on:cs.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:n("block_state"),decor_state:n("block_state"),stem_state:n("block_state"),valid_base_block:n("block_state"),planted:cs.Opt(cs.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:n("block_state")},"minecraft:lake":{fluid:n("block_state_provider"),barrier:n("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:cs.Opt(cs.NumberNode({integer:!0,min:1,max:512})),column_radius:ls.IntProvider({min:0,max:60}),height_scale:ls.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:cs.NumberNode({min:0,max:1}),stalactite_bluntness:ls.FloatProvider({min:.1,max:10}),stalagmite_bluntness:ls.FloatProvider({min:.1,max:10}),wind_speed:ls.FloatProvider({min:0,max:2}),min_radius_for_wind:cs.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:cs.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:n("block_state_provider"),spread_width:cs.NumberNode({integer:!0,min:1}),spread_height:cs.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:n("block_state"),target:n("block_state"),radius:ls.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_directional_spread:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_spread_radius2:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_spread_radius3:cs.Opt(cs.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:cs.ListNode(cs.ObjectNode({chance:cs.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:cs.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:cs.NumberNode({integer:!0,min:1,max:64}),root_radius:cs.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:cs.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:cs.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:cs.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:cs.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:cs.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:cs.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:n("block_state_provider"),hanging_root_state_provider:n("block_state_provider"),allowed_tree_position:n("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:ls.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:cs.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:n("block_state_provider")},"minecraft:simple_random_selector":{features:cs.ListNode(o)},"minecraft:spring_feature":{state:n("fluid_state"),rock_count:cs.NumberNode({integer:!0}),hole_count:cs.NumberNode({integer:!0}),requires_block_below:cs.BooleanNode(),valid_blocks:cs.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:cs.Opt(cs.BooleanNode()),force_dirt:cs.Opt(cs.BooleanNode()),minimum_size:n("feature_size"),dirt_provider:n("block_state_provider"),trunk_provider:n("block_state_provider"),foliage_provider:n("block_state_provider"),trunk_placer:cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:cs.NumberNode({integer:!0,min:0,max:32}),height_rand_a:cs.NumberNode({integer:!0,min:0,max:24}),height_rand_b:cs.NumberNode({integer:!0,min:0,max:24}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:bending_trunk_placer":{bend_length:ls.IntProvider({min:1,max:64}),min_height_for_leaves:cs.Opt(cs.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:ls.IntProvider({min:0,max:16}),offset:ls.IntProvider({min:0,max:16}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:blob_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:ls.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:ls.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:ls.IntProvider({min:1,max:512}),leaf_placement_attempts:cs.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:ls.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:cs.ListNode(cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:alter_ground":{provider:n("block_state_provider")},"minecraft:beehive":{probability:cs.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:cs.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:cs.NumberNode({integer:!0,min:1}),spread_height:cs.NumberNode({integer:!0,min:1}),max_height:cs.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:cs.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:cs.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:cs.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",cs.Mod(cs.ObjectNode({feature:r,placement:cs.ListNode(n("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",cs.Mod(cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:cs.Opt(cs.NumberNode({min:0,max:80})),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:two_layers_feature_size":{limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:81})),lower_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),upper_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:80})),upper_limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:80})),lower_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),middle_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),upper_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:cs.NumberNode({integer:!0}),noise:n("noise_parameters"),scale:cs.Mod(cs.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",cs.Mod(cs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:ls.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:n("noise_parameters"),slow_scale:cs.Mod(cs.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:cs.ListNode(n("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:cs.NumberNode({min:-1,max:1}),high_chance:cs.NumberNode({min:0,max:1}),default_state:n("block_state"),low_states:cs.ListNode(n("block_state")),high_states:cs.ListNode(n("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:cs.ListNode(n("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:ls.IntProvider(),source:n("block_state_provider")},"minecraft:rotated_block_provider":{state:n("block_state")},"minecraft:simple_state_provider":{state:n("block_state")},"minecraft:weighted_state_provider":{entries:cs.ListNode(cs.Mod(cs.ObjectNode({weight:cs.NumberNode({integer:!0,min:1}),data:n("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:cs.Opt(cs.ListNode(cs.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",cs.Mod(cs.ObjectNode({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:all_of":{predicates:cs.ListNode(n("block_predicate_worldgen"))},"minecraft:any_of":{predicates:cs.ListNode(n("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:cs.ListNode(i({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:cs.ListNode(i({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:n("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:n("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initNoiseSettingsSchemas=void 0;const hs=Pe,ps=xa;ds.initNoiseSettingsSchemas=function(e,t){const n=hs.Reference.bind(void 0,e),i=hs.StringNode.bind(void 0,t);e.register("noise_settings",hs.Mod(hs.ObjectNode({sea_level:hs.NumberNode({integer:!0}),disable_mob_generation:hs.BooleanNode(),noise_caves_enabled:hs.BooleanNode(),noodle_caves_enabled:hs.BooleanNode(),aquifers_enabled:hs.BooleanNode(),ore_veins_enabled:hs.BooleanNode(),legacy_random_source:hs.BooleanNode(),default_block:n("block_state"),default_fluid:n("block_state"),noise:hs.ObjectNode({min_y:hs.NumberNode({integer:!0,min:-2048,max:2047}),height:hs.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:hs.NumberNode({integer:!0}),size_vertical:hs.NumberNode({integer:!0}),island_noise_override:hs.Opt(hs.BooleanNode()),amplified:hs.Opt(hs.BooleanNode()),large_biomes:hs.Opt(hs.BooleanNode()),sampling:hs.ObjectNode({xz_scale:hs.NumberNode(),y_scale:hs.NumberNode(),xz_factor:hs.NumberNode(),y_factor:hs.NumberNode()}),bottom_slide:n("noise_slider"),top_slide:n("noise_slider"),terrain_shaper:n("terrain_shaper")}),surface_rule:n("material_rule"),structures:n("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>ps.DefaultNoiseSettings,validate:(t,n,i,r)=>{var o,a,s,c;return(null===(o=null==(n=e.validate(t,n,i,r))?void 0:n.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==n?void 0:n.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==n?void 0:n.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==n?void 0:n.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),n}})))),e.register("noise_slider",hs.ObjectNode({target:hs.NumberNode(),size:hs.NumberNode({integer:!0,min:0}),offset:hs.NumberNode({integer:!0})})),e.register("generator_structures",hs.ObjectNode({stronghold:hs.Opt(hs.ObjectNode({distance:hs.NumberNode({integer:!0,min:0,max:1023}),spread:hs.NumberNode({integer:!0,min:0,max:1023}),count:hs.NumberNode({integer:!0,min:1,max:4095})})),structures:hs.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),hs.Mod(hs.ObjectNode({spacing:hs.NumberNode({integer:!0,min:0,max:4096}),separation:hs.Mod(hs.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,n,i,r)=>(t.pop().push("spacing").get()<=n&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,n,i,r))}))),salt:hs.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",hs.Mod(hs.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:hs.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",hs.Mod(hs.ObjectNode({offset:n("terrain_spline"),factor:n("terrain_spline"),jaggedness:n("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",hs.Mod(hs.ChoiceNode([{type:"number",node:hs.NumberNode()},{type:"object",node:hs.ObjectNode({coordinate:hs.Mod(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:hs.ListNode(hs.ObjectNode({location:hs.NumberNode(),derivative:hs.NumberNode(),value:n("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ms={};Object.defineProperty(ms,"__esModule",{value:!0}),ms.initStructureFeatureSchemas=void 0;const fs=Pe;ms.initStructureFeatureSchemas=function(e,t){const n=fs.StringNode.bind(void 0,t),i=fs.Reference.bind(void 0,e),r={start_pool:n({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:fs.NumberNode({integer:!0})};e.register("configured_structure_feature",fs.Mod(fs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:fs.ObjectNode({[fs.Switch]:["pop",{push:"type"}],[fs.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:fs.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:n({enum:["normal","mesa"]}),probability:fs.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:n({enum:["cold","warm"]}),large_probability:fs.NumberNode({min:0,max:1}),cluster_probability:fs.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:n({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:fs.Opt(fs.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.initSurfaceRuleSchemas=void 0;const _s=Pe;gs.initSurfaceRuleSchemas=function(e,t){const n=_s.StringNode.bind(void 0,t),i=_s.Reference.bind(void 0,e);e.register("material_rule",_s.Mod(_s.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/material_rule"}}),[_s.Switch]:[{push:"type"}],[_s.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:_s.ListNode(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",_s.Mod(_s.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/material_condition"}}),[_s.Switch]:[{push:"type"}],[_s.Case]:{"minecraft:biome":{biome_is:_s.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:n({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:_s.NumberNode(),max_threshold:_s.NumberNode()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:_s.NumberNode({integer:!0}),surface_type:n({enum:"cave_surface"}),add_surface_depth:_s.BooleanNode(),add_surface_secondary_depth:_s.BooleanNode()},"minecraft:vertical_gradient":{random_name:n(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:_s.NumberNode({integer:!0}),surface_depth_multiplier:_s.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_s.BooleanNode()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:_s.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_s.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var bs={};Object.defineProperty(bs,"__esModule",{value:!0}),bs.initTemplatePoolSchemas=void 0;const vs=Pe,ys=as;bs.initTemplatePoolSchemas=function(e,t){const n=vs.Reference.bind(void 0,e),i=vs.StringNode.bind(void 0,t);e.register("template_pool",vs.Mod(vs.ObjectNode({name:i(),fallback:i(),elements:vs.ListNode(n("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",vs.Mod(vs.ObjectNode({weight:vs.NumberNode({integer:!0,min:1}),element:n("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",vs.Mod(vs.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[vs.Switch]:[{push:"element_type"}],[vs.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:ys.Processors},"minecraft:list_pool_element":{elements:vs.ListNode(n("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:ys.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initWorldgenSchemas=void 0;const ws=Ya,xs=Qa,As=ns,Ns=os,ks=ds,Cs=as,Es=ms,Ss=gs,Os=bs;Ja.initWorldgenSchemas=function(e,t){Cs.initProcessorListSchemas(e,t),ws.initBiomeSchemas(e,t),xs.initCarverSchemas(e,t),As.initDecoratorSchemas(e,t),Ns.initFeatureSchemas(e,t),ks.initNoiseSettingsSchemas(e,t),Es.initStructureFeatureSchemas(e,t),Ss.initSurfaceRuleSchemas(e,t),Os.initTemplatePoolSchemas(e,t)};var Fs={};Object.defineProperty(Fs,"__esModule",{value:!0}),Fs.initWorldSettingsSchemas=void 0;const Ds=Pe;Fs.initWorldSettingsSchemas=function(e,t){const n=Ds.Reference.bind(void 0,e),i=Ds.StringNode.bind(void 0,t);e.register("world_settings",Ds.Mod(Ds.ObjectNode({generate_features:Ds.BooleanNode(),bonus_chest:Ds.BooleanNode(),seed:Ds.NumberNode({integer:!0}),dimensions:Ds.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),n("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ha,"__esModule",{value:!0}),ha.initSchemas=void 0;const Bs=pa,Ls=fa,Ms=xa,Ts=Aa,Rs=Ca,$s=Oa,Is=Ba,js=Ta,Ps=Pa,zs=Ua,Us=Ha,Ws=Ga,Hs=Ka,Vs=Ja,Gs=Fs;ha.initSchemas=function(e,t){Ms.initCommonSchemas(e,t),Bs.initAdvancementSchemas(e,t),Ls.initAssetsSchemas(e,t),Ts.initConditionSchemas(e,t),$s.initDimensionTypeSchemas(e,t),Rs.initDimensionSchemas(e,t),Is.initItemModifierSchemas(e,t),js.initLootTableSchemas(e,t),Ps.initPackMcmetaSchemas(e,t),zs.initPredicatesSchemas(e,t),Us.initRecipeSchemas(e,t),Ws.initTagsSchemas(e,t),Hs.initTextComponentSchemas(e,t),Vs.initWorldgenSchemas(e,t),Gs.initWorldSettingsSchemas(e,t)};var qs=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),Ks=je&&je.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Xs=je&&je.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&qs(t,e,n);return Ks(t,e),t};Object.defineProperty(ua,"__esModule",{value:!0});var Js=ua.getSchemas=ua.getCollections=void 0;const Ys=Pe,Zs=da,Qs=ha;var ec=ua.lootContext=Xs(Ra);var tc=ua.getCollections=function(){const e=new Ys.CollectionRegistry;return Zs.initCollections(e),e};Js=ua.getSchemas=function(e){const t=new Ys.SchemaRegistry;return Qs.initSchemas(t,e),t};var nc=Object.freeze(Object.assign(Object.create(null),ua,{[Symbol.toStringTag]:"Module",get getSchemas(){return Js},get getCollections(){return tc},lootContext:ec,default:ua})),ic={},rc={};Object.defineProperty(rc,"__esModule",{value:!0}),rc.initCollections=void 0,rc.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),e.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])};var oc={},ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initAdvancementSchemas=void 0;const sc=Pe;ac.initAdvancementSchemas=function(e,t){const n=sc.Reference.bind(void 0,e),i=sc.StringNode.bind(void 0,t),r=sc.ChoiceNode([{type:"object",node:sc.Opt(n("entity_predicate")),change:e=>{var t,n;return null!==(n=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==n?n:{}}},{type:"list",node:sc.ListNode(n("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",sc.Mod(sc.ObjectNode({display:sc.Opt(sc.Mod(sc.ObjectNode({icon:sc.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:sc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:n("text_component"),description:n("text_component"),background:sc.Opt(i()),frame:sc.Opt(i({enum:["task","challenge","goal"]})),show_toast:sc.Opt(sc.BooleanNode()),announce_to_chat:sc.Opt(sc.BooleanNode()),hidden:sc.Opt(sc.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:sc.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:sc.MapNode(i(),n("advancement_criteria")),requirements:sc.Opt(sc.ListNode(sc.ListNode(i()))),rewards:sc.Opt(sc.ObjectNode({function:sc.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:sc.Opt(sc.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:sc.Opt(sc.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:sc.Opt(sc.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",sc.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:sc.Opt(sc.ObjectNode({player:sc.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[sc.Switch]:["pop",{push:"trigger"}],[sc.Case]:{"minecraft:bee_nest_destroyed":{block:sc.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:sc.Opt(sc.NumberNode({integer:!0})),item:sc.Opt(n("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:sc.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:sc.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:sc.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:sc.Opt(sc.ListNode(r))},"minecraft:construct_beacon":{level:n("int_bounds")},"minecraft:consume_item":{item:sc.Opt(n("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:sc.Opt(sc.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),sc.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds")}))),source:sc.Opt(r)},"minecraft:enter_block":{block:sc.Opt(i({validator:"resource",params:{pool:"block"}})),state:sc.Opt(sc.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:n("int_bounds"),item:sc.Opt(n("item_predicate"))},"minecraft:entity_hurt_player":{damage:sc.Opt(n("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:sc.Opt(n("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:sc.Opt(n("location_predicate")),distance:sc.Opt(n("distance_predicate"))},"minecraft:filled_bucket":{item:sc.Opt(n("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:sc.Opt(n("item_predicate"))},"minecraft:hero_of_the_village":{location:sc.Opt(n("location_predicate"))},"minecraft:inventory_changed":{slots:sc.Opt(sc.ObjectNode({empty:n("int_bounds"),occupied:n("int_bounds"),full:n("int_bounds")})),items:sc.Opt(sc.ListNode(n("item_predicate")))},"minecraft:item_durability_changed":{delta:n("int_bounds"),durability:n("int_bounds"),item:sc.Opt(n("item_predicate"))},"minecraft:item_used_on_block":{item:sc.Opt(n("item_predicate")),location:sc.Opt(n("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:n("int_bounds"),victims:sc.Opt(sc.ListNode(r))},"minecraft:levitation":{distance:sc.Opt(n("distance_predicate")),duration:n("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:sc.Opt(n("location_predicate"))},"minecraft:nether_travel":{start_position:sc.Opt(n("location_predicate")),distance:sc.Opt(n("distance_predicate"))},"minecraft:placed_block":{block:sc.Opt(i({validator:"resource",params:{pool:"block"}})),state:sc.Opt(sc.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:sc.Opt(n("item_predicate")),location:sc.Opt(n("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:sc.Opt(n("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:sc.Opt(n("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:sc.Opt(n("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:sc.Opt(n("location_predicate")),distance:sc.Opt(n("distance_predicate"))},"minecraft:slept_in_bed":{location:sc.Opt(n("location_predicate"))},"minecraft:slide_down_block":{block:sc.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:sc.Opt(n("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:n("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:sc.Opt(n("entity_predicate")),item:sc.Opt(n("item_predicate"))},"minecraft:used_ender_eye":{distance:sc.Opt(n("float_bounds"))},"minecraft:used_totem":{item:sc.Opt(n("item_predicate"))},"minecraft:using_item":{item:sc.Opt(n("item_predicate"))},"minecraft:villager_trade":{villager:sc.Opt(n("entity_predicate")),item:sc.Opt(n("item_predicate"))},"minecraft:voluntary_exile":{location:sc.Opt(n("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var cc={},lc={};Object.defineProperty(lc,"__esModule",{value:!0}),lc.initModelSchemas=void 0;const uc=Pe;lc.initModelSchemas=function(e,t){uc.Reference.bind(void 0,e);const n=uc.StringNode.bind(void 0,t),i=(e,t,n)=>uc.ListNode(uc.NumberNode({min:t,max:n}),{minLength:e,maxLength:e}),r=uc.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:n(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:n({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",uc.Mod(uc.ObjectNode({parent:uc.Opt(n({validator:"resource",params:{pool:"$model"}})),ambientocclusion:uc.Opt(uc.BooleanNode()),gui_light:uc.Opt(n({enum:"gui_light"})),textures:uc.Opt(uc.MapNode(n(),r)),elements:uc.Opt(uc.ListNode(uc.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:uc.Opt(uc.ObjectNode({origin:i(3),axis:n({enum:"axis"}),angle:uc.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:uc.Opt(uc.BooleanNode())})),shade:uc.Opt(uc.BooleanNode()),faces:uc.MapNode(n({enum:"direction"}),uc.ObjectNode({texture:r,uv:uc.Opt(i(4)),cullface:uc.Opt(n({enum:"direction"})),rotation:uc.Opt(uc.NumberNode({integer:!0})),tintindex:uc.Opt(uc.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:uc.Opt(uc.MapNode(n({enum:"display_position"}),uc.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:uc.Opt(uc.ListNode(uc.ObjectNode({predicate:uc.MapNode(n({enum:"item_model_predicates"}),uc.NumberNode()),model:n({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initBlockDefinitionSchemas=void 0;const hc=Pe;dc.initBlockDefinitionSchemas=function(e,t){const n=hc.Reference.bind(void 0,e),i=hc.StringNode.bind(void 0,t);e.register("block_definition",hc.Mod(hc.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:hc.ObjectNode({variants:hc.MapNode(i(),n("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:hc.ObjectNode({multipart:hc.ListNode(hc.ObjectNode({when:hc.Opt(n("multipart_condition")),apply:n("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:i({validator:"resource",params:{pool:"$model"}}),x:hc.Opt(hc.NumberEnum({integer:!0,values:[0,90,180,270]})),y:hc.Opt(hc.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:hc.Opt(hc.BooleanNode())};e.register("model_variant",hc.ChoiceNode([{type:"object",node:hc.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:hc.ListNode(hc.ObjectNode(c(s({},r),{weight:hc.Opt(hc.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",hc.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:hc.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:hc.ObjectNode({OR:hc.ListNode(n("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(cc,"__esModule",{value:!0}),cc.initAssetsSchemas=void 0;const pc=lc,mc=dc;cc.initAssetsSchemas=function(e,t){mc.initBlockDefinitionSchemas(e,t),pc.initModelSchemas(e,t)};var fc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(n,i){const r=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,n;return void 0===e?0:null!==(n=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==n?n:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",a(!0)),n.register("float_bounds",a()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,n,i,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:n,node:l[o][i]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var n;if("minecraft:"+(null===(n=null==t?void 0:t.type)||void 0===n?void 0:n.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var n,i,r;return{[e]:null!==(r=null!==(i=null!==(n=t.absolute)&&void 0!==n?n:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),n.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):r({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,n=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:n},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:r({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return i.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),n,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(fc);var gc={};Object.defineProperty(gc,"__esModule",{value:!0}),gc.initConditionSchemas=void 0;const _c=Pe,bc=fc;gc.initConditionSchemas=function(e,t){const n=_c.Reference.bind(void 0,e),i=_c.StringNode.bind(void 0,t);e.register("predicate",_c.ObjectOrList(n("condition"),{choiceContext:"condition"})),e.register("condition",_c.Mod(_c.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[_c.Switch]:[{push:"condition"}],[_c.Case]:bc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var vc={};Object.defineProperty(vc,"__esModule",{value:!0}),vc.initDimensionSchemas=void 0;const yc=Pe,wc=fc;vc.initDimensionSchemas=function(e,t){const n=yc.Reference.bind(void 0,e),i=yc.StringNode.bind(void 0,t),r=yc.ChoiceNode([{type:"string",priority:1,node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:n("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});e.register("dimension",yc.Mod(yc.ObjectNode({type:wc.DimensionTypePresets(n("dimension_type")),generator:yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[yc.Switch]:[{push:"type"}],[yc.Case]:{"minecraft:noise":{seed:yc.NumberNode({integer:!0}),settings:wc.NoiseSettingsPresets(n("noise_settings")),biome_source:yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[yc.Switch]:[{push:"type"}],[yc.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:yc.Opt(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:yc.Mod(yc.ListNode(n("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:yc.Opt(yc.NumberNode({integer:!0,min:0,max:62})),biomes:wc.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:yc.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:yc.ObjectNode({biome:yc.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:yc.Opt(yc.BooleanNode()),features:yc.Opt(yc.BooleanNode()),layers:yc.ListNode(n("generator_layer")),structure_overrides:yc.ListNode(r)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const o=yc.ChoiceNode([{type:"number",node:yc.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:yc.ListNode(yc.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",yc.Mod(yc.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:yc.ObjectNode({temperature:o,humidity:o,continentalness:o,erosion:o,weirdness:o,depth:o,offset:yc.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var xc={};Object.defineProperty(xc,"__esModule",{value:!0}),xc.initDimensionTypeSchemas=void 0;const Ac=Pe,Nc=fc;xc.initDimensionTypeSchemas=function(e,t){const n=Ac.StringNode.bind(void 0,t);e.register("dimension_type",Ac.Mod(Ac.ObjectNode({ultrawarm:Ac.BooleanNode(),natural:Ac.BooleanNode(),piglin_safe:Ac.BooleanNode(),respawn_anchor_works:Ac.BooleanNode(),bed_works:Ac.BooleanNode(),has_raids:Ac.BooleanNode(),has_skylight:Ac.BooleanNode(),has_ceiling:Ac.BooleanNode(),coordinate_scale:Ac.NumberNode({min:1e-5,max:3e7}),ambient_light:Ac.NumberNode(),fixed_time:Ac.Opt(Ac.NumberNode({integer:!0})),logical_height:Ac.NumberNode({integer:!0,min:0,max:4064}),effects:Ac.Opt(n({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:n({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:Ac.NumberNode({integer:!0,min:-2032,max:2031}),height:Ac.NumberNode({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Nc.DefaultDimensionType,validate:(t,n,i,r)=>((null==(n=e.validate(t,n,i,r))?void 0:n.min_y)+(null==n?void 0:n.height)>2032&&i.add(t.push("height"),"error.min_y_plus_height",2032),(null==n?void 0:n.logical_height)>(null==n?void 0:n.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==n?void 0:n.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==n?void 0:n.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),n)}))))};var kc={};Object.defineProperty(kc,"__esModule",{value:!0}),kc.initItemModifierSchemas=void 0;const Cc=Pe,Ec=fc;kc.initItemModifierSchemas=function(e,t){const n=Cc.Reference.bind(void 0,e),i=Cc.StringNode.bind(void 0,t);e.register("item_modifier",Cc.ObjectOrList(n("function"),{choiceContext:"function"}));const r={conditions:Cc.Opt(Cc.ListNode(n("condition")))};e.register("function",Cc.Mod(Cc.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[Cc.Switch]:[{push:"function"}],[Cc.Case]:Ec.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Sc={},Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.LootFunctions=Oc.LootConditions=Oc.LootCopySources=Oc.LootEntitySources=Oc.LootTableTypes=void 0,Oc.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Oc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Oc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Oc.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Oc.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.initLootTableSchemas=void 0;const Fc=Pe,Dc=Oc,Bc=fc;Sc.initLootTableSchemas=function(e,t){const n=Fc.Reference.bind(void 0,e),i=Fc.StringNode.bind(void 0,t),r={conditions:Fc.Opt(Fc.ListNode(n("loot_condition")))},o=s({functions:Fc.Opt(Fc.ListNode(n("loot_function")))},r);function a(e,n,i){const r=[],o=i=>t.get(n).filter((t=>{var n;return(null!==(n=e.get(t))&&void 0!==n?n:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Dc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Fc.Path(["type"]))===t,node:i(o(e))})}return r.push({match:e=>!0,node:i(n)}),Fc.SwitchNode(r)}const c=a(Dc.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Dc.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Dc.LootEntitySources,"entity_source",(e=>i({enum:e}))),d=a(Dc.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Fc.Mod(Fc.ObjectNode({type:Fc.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Fc.Opt(Fc.ListNode(Fc.Mod(Fc.ObjectNode(s({rolls:n("number_provider"),bonus_rolls:Fc.Opt(n("number_provider")),entries:Fc.ListNode(n("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Fc.Opt(Fc.ListNode(n("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Fc.Mod(Fc.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Fc.Opt(Fc.Mod(Fc.NumberNode({integer:!0,min:1}),h)),quality:Fc.Opt(Fc.Mod(Fc.NumberNode({integer:!0}),h)),[Fc.Switch]:[{push:"type"}],[Fc.Case]:{"minecraft:alternatives":s({children:Fc.ListNode(n("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Fc.ListNode(n("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Fc.ListNode(n("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Fc.Opt(Fc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Fc.Mod(Fc.ObjectNode({function:l,[Fc.Switch]:[{push:"function"}],[Fc.Case]:Bc.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Fc.Mod(Fc.ObjectNode({condition:c,[Fc.Switch]:[{push:"condition"}],[Fc.Case]:Bc.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Fc.Mod(Fc.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:n("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Fc.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Lc={};Object.defineProperty(Lc,"__esModule",{value:!0}),Lc.initPackMcmetaSchemas=void 0;const Mc=Pe;Lc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Mc.Mod(Mc.ObjectNode({pack:Mc.Mod(Mc.ObjectNode({pack_format:Mc.Mod(Mc.NumberNode({integer:!0,min:9,max:9}),{default:()=>9,canUpdate:(e,t)=>9!==t,update:()=>[{name:"pack_format",params:[9],newValue:9}]}),description:Mc.Reference(e,"text_component")}),{default:()=>({pack_format:9,description:""})})}),{default:()=>({pack:{pack_format:9,description:""}})}))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initPredicatesSchemas=void 0;const Rc=Pe;Tc.initPredicatesSchemas=function(e,t){const n=Rc.Reference.bind(void 0,e),i=Rc.StringNode.bind(void 0,t),r=Rc.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Rc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Rc.ObjectNode({min:Rc.Opt(Rc.NumberNode({integer:!0})),max:Rc.Opt(Rc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Rc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Rc.ObjectNode({items:Rc.Opt(Rc.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:Rc.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:n("int_bounds"),durability:n("int_bounds"),potion:Rc.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Rc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Rc.Opt(Rc.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Rc.ObjectNode({enchantment:Rc.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:n("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Rc.ObjectNode({blocks:Rc.Opt(Rc.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:Rc.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Rc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Rc.Opt(Rc.MapNode(i(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Rc.ObjectNode({fluid:Rc.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Rc.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Rc.Opt(Rc.MapNode(i(),r))},{context:"fluid"})),e.register("location_predicate",Rc.ObjectNode({position:Rc.Opt(Rc.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds")})),biome:Rc.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Rc.Opt(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:Rc.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Rc.Opt(Rc.ObjectNode({light:n("int_bounds")})),smokey:Rc.Opt(Rc.BooleanNode()),block:Rc.Opt(n("block_predicate")),fluid:Rc.Opt(n("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Rc.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:n("int_bounds"),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Rc.ObjectNode({gamemode:Rc.Opt(i({enum:"gamemode"})),level:n("int_bounds"),advancements:Rc.Opt(Rc.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Rc.ChoiceNode([{type:"boolean",node:Rc.BooleanNode(),change:e=>!0},{type:"object",node:Rc.MapNode(i(),Rc.BooleanNode())}]))),recipes:Rc.Opt(Rc.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Rc.BooleanNode())),stats:Rc.Opt(Rc.ListNode(n("statistic_predicate"))),looking_at:Rc.Opt(n("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Rc.ObjectNode({amplifier:n("int_bounds"),duration:n("int_bounds"),ambient:Rc.Opt(Rc.BooleanNode()),visible:Rc.Opt(Rc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Rc.ObjectNode({x:n("float_bounds"),y:n("float_bounds"),z:n("float_bounds"),absolute:n("float_bounds"),horizontal:n("float_bounds")},{context:"distance"})),e.register("entity_predicate",Rc.ObjectNode({type:Rc.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Rc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Rc.Opt(i({validator:"team"})),location:Rc.Opt(n("location_predicate")),stepping_on:Rc.Opt(n("location_predicate")),distance:Rc.Opt(n("distance_predicate")),flags:Rc.Opt(Rc.ObjectNode({is_on_fire:Rc.Opt(Rc.BooleanNode()),is_sneaking:Rc.Opt(Rc.BooleanNode()),is_sprinting:Rc.Opt(Rc.BooleanNode()),is_swimming:Rc.Opt(Rc.BooleanNode()),is_baby:Rc.Opt(Rc.BooleanNode())})),equipment:Rc.Opt(Rc.MapNode(i({enum:"slot"}),n("item_predicate"))),player:Rc.Opt(n("player_predicate")),vehicle:Rc.Opt(n("entity_predicate")),passenger:Rc.Opt(n("entity_predicate")),targeted_entity:Rc.Opt(n("entity_predicate")),lightning_bolt:Rc.Opt(Rc.ObjectNode({blocks_set_on_fire:Rc.Opt(n("int_bounds")),entity_struck:Rc.Opt(n("entity_predicate"))})),fishing_hook:Rc.Opt(Rc.ObjectNode({in_open_water:Rc.Opt(Rc.BooleanNode())})),effects:Rc.Opt(Rc.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Rc.ObjectNode({is_explosion:Rc.Opt(Rc.BooleanNode()),is_fire:Rc.Opt(Rc.BooleanNode()),is_magic:Rc.Opt(Rc.BooleanNode()),is_projectile:Rc.Opt(Rc.BooleanNode()),is_lightning:Rc.Opt(Rc.BooleanNode()),bypasses_armor:Rc.Opt(Rc.BooleanNode()),bypasses_invulnerability:Rc.Opt(Rc.BooleanNode()),bypasses_magic:Rc.Opt(Rc.BooleanNode()),source_entity:Rc.Opt(n("entity_predicate")),direct_entity:Rc.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Rc.ObjectNode({dealt:n("float_bounds"),taken:n("float_bounds"),blocked:Rc.Opt(Rc.BooleanNode()),source_entity:Rc.Opt(n("entity_predicate")),type:Rc.Opt(n("damage_source_predicate"))},{context:"damage"}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initRecipeSchemas=void 0;const Ic=Pe;$c.initRecipeSchemas=function(e,t){const n=Ic.Reference.bind(void 0,e),i=Ic.StringNode.bind(void 0,t);e.register("recipe",Ic.Mod(Ic.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Ic.Switch]:[{push:"type"}],[Ic.Case]:{"minecraft:crafting_shaped":{group:Ic.Opt(i({enum:"recipe_group",additional:!0})),pattern:Ic.ListNode(i()),key:Ic.MapNode(i(),n("recipe_ingredient")),result:n("recipe_result")},"minecraft:crafting_shapeless":{group:Ic.Opt(i()),ingredients:Ic.ListNode(n("recipe_ingredient")),result:n("recipe_result")},"minecraft:smelting":{group:Ic.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Ic.Opt(Ic.NumberNode()),cookingtime:Ic.Opt(Ic.Mod(Ic.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Ic.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Ic.Opt(Ic.NumberNode()),cookingtime:Ic.Opt(Ic.Mod(Ic.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Ic.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Ic.Opt(Ic.NumberNode()),cookingtime:Ic.Opt(Ic.Mod(Ic.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Ic.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Ic.Opt(Ic.NumberNode()),cookingtime:Ic.Opt(Ic.Mod(Ic.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Ic.Opt(i()),ingredient:n("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Ic.NumberNode({integer:!0})},"minecraft:smithing":{group:Ic.Opt(i()),base:n("recipe_ingredient_object"),addition:n("recipe_ingredient_object"),result:n("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Ic.Mod(Ic.ChoiceNode([{type:"object",node:n("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Ic.ListNode(n("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Ic.Mod(Ic.ObjectNode({item:Ic.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Ic.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Ic.Mod(Ic.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Ic.Opt(Ic.Mod(Ic.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var jc={};Object.defineProperty(jc,"__esModule",{value:!0}),jc.initTagsSchemas=void 0;const Pc=Pe;jc.initTagsSchemas=function(e,t){const n=Pc.StringNode.bind(void 0,t),i=e=>Pc.Mod(Pc.ObjectNode({replace:Pc.Opt(Pc.BooleanNode()),values:Pc.ListNode(Pc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Pc.ObjectNode({id:n({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Pc.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item")),e.register("advancement_tag",i("$advancement")),e.register("dimension_tag",i("$dimension")),e.register("dimension_type_tag",i("$dimension_type")),e.register("function_tag",i("$function")),e.register("item_modifier_tag",i("$item_modifier")),e.register("loot_table_tag",i("$loot_table")),e.register("predicate_tag",i("$predicate")),e.register("recipe_tag",i("$recipe")),e.register("structure_tag",i("$structure")),e.register("biome_tag",i("$worldgen/biome")),e.register("configured_carver_tag",i("$worldgen/configured_carver")),e.register("configured_decorator_tag",i("$worldgen/configured_decorator")),e.register("configured_feature_tag",i("$worldgen/configured_feature")),e.register("configured_structure_feature_tag",i("$worldgen/configured_structure_feature")),e.register("configured_surface_builder_tag",i("$worldgen/configured_surface_builder")),e.register("density_function_tag",i("$worldgen/density_function")),e.register("noise_tag",i("$worldgen/noise")),e.register("noise_settings_tag",i("$worldgen/noise_settings")),e.register("placed_feature_tag",i("$worldgen/placed_feature")),e.register("processor_list_tag",i("$worldgen/processor_list")),e.register("structure_set_tag",i("$worldgen/structure_set")),e.register("template_pool_tag",i("$worldgen/template_pool"))};var zc={};Object.defineProperty(zc,"__esModule",{value:!0}),zc.initTextComponentSchemas=void 0;const Uc=Pe;zc.initTextComponentSchemas=function(e,t){const n=Uc.Reference.bind(void 0,e),i=Uc.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Uc.Mod(Uc.ChoiceNode([{type:"object",node:n("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:n("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:r},{type:"number",node:Uc.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Uc.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Uc.Opt(i()),font:Uc.Opt(i()),bold:Uc.Opt(Uc.BooleanNode()),italic:Uc.Opt(Uc.BooleanNode()),underlined:Uc.Opt(Uc.BooleanNode()),strikethrough:Uc.Opt(Uc.BooleanNode()),obfuscated:Uc.Opt(Uc.BooleanNode()),insertion:Uc.Opt(i()),clickEvent:Uc.Opt(Uc.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Uc.Switch]:[{push:"action"}],[Uc.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Uc.Opt(Uc.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[Uc.Switch]:[{push:"action"}],[Uc.Case]:{show_text:{value:Uc.Opt(n("text_component")),contents:Uc.Opt(n("text_component"))},show_item:{value:Uc.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Uc.Opt(Uc.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:Uc.Opt(Uc.NumberNode({integer:!0})),tag:Uc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Uc.Opt(Uc.ObjectNode({name:Uc.Opt(i()),type:Uc.Opt(i()),id:Uc.Opt(i())})),contents:Uc.Opt(Uc.Mod(Uc.ObjectNode({name:Uc.Opt(n("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Uc.Opt(n("text_component_list"))};e.register("text_component_object",Uc.Mod(Uc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Uc.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Uc.ObjectNode(s({translate:i(),with:Uc.Opt(n("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Uc.ObjectNode(s({score:Uc.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:Uc.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Uc.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Uc.Opt(n("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Uc.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Uc.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:Uc.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Uc.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Uc.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:Uc.Opt(Uc.BooleanNode()),separator:Uc.Opt(n("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Uc.Mod(Uc.ListNode(n("text_component")),{default:()=>[{text:""}]}))};var Wc={},Hc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,n=fc;e.initBiomeSchemas=function(i,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=t.Mod(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:t.NumberNode({integer:!0}),minCount:t.NumberNode({integer:!0}),maxCount:t.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),i.register("biome",t.Mod(t.ObjectNode({temperature:t.NumberNode(),downfall:t.NumberNode(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:t.Opt(o({enum:["none","frozen"]})),category:o({enum:"biome_category"}),creature_spawn_probability:t.Opt(t.NumberNode({min:0,max:1})),effects:t.ObjectNode({sky_color:t.NumberNode({color:!0}),fog_color:t.NumberNode({color:!0}),water_color:t.NumberNode({color:!0}),water_fog_color:t.NumberNode({color:!0}),grass_color:t.Opt(t.NumberNode({color:!0})),foliage_color:t.Opt(t.NumberNode({color:!0})),grass_color_modifier:t.Opt(o({enum:["none","dark_forest","swamp"]})),ambient_sound:t.Opt(o()),mood_sound:t.Opt(t.ObjectNode({sound:o(),tick_delay:t.NumberNode({integer:!0}),block_search_extent:t.NumberNode({integer:!0}),offset:t.NumberNode()})),additions_sound:t.Opt(t.ObjectNode({sound:o(),tick_chance:t.NumberNode({min:0,max:1})})),music:t.Opt(t.ObjectNode({sound:o(),min_delay:t.NumberNode({integer:!0,min:0}),max_delay:t.NumberNode({integer:!0,min:0}),replace_current_music:t.BooleanNode()})),particle:t.Opt(t.ObjectNode({options:t.ObjectNode({type:o()}),probability:t.NumberNode({min:0,max:1})}))}),spawners:t.MapNode(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:t.MapNode(o({validator:"resource",params:{pool:"entity_type"}}),t.Mod(t.ObjectNode({energy_budget:t.NumberNode(),charge:t.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:t.MapNode(o({enum:["air","liquid"]}),t.Mod(n.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:t.ListNode(t.Mod(n.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}}(Hc);var Vc={};Object.defineProperty(Vc,"__esModule",{value:!0}),Vc.initCarverSchemas=void 0;const Gc=Pe,qc=fc;Vc.initCarverSchemas=function(e,t){const n=Gc.Reference.bind(void 0,e),i=Gc.StringNode.bind(void 0,t),r={vertical_rotation:qc.FloatProvider(),shape:Gc.ObjectNode({distance_factor:qc.FloatProvider(),thickness:qc.FloatProvider(),width_smoothness:Gc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:qc.FloatProvider(),vertical_radius_default_factor:Gc.NumberNode(),vertical_radius_center_factor:Gc.NumberNode()})},o={horizontal_radius_multiplier:qc.FloatProvider(),vertical_radius_multiplier:qc.FloatProvider(),floor_level:qc.FloatProvider({min:-1,max:1})};e.register("configured_carver",Gc.Mod(Gc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:Gc.ObjectNode({probability:Gc.NumberNode({min:0,max:1}),y:n("height_provider"),yScale:qc.FloatProvider(),lava_level:n("vertical_anchor"),debug_settings:Gc.Opt(Gc.ObjectNode({debug_mode:Gc.Opt(Gc.BooleanNode()),air_state:Gc.Opt(n("block_state")),water_state:Gc.Opt(n("block_state")),lava_state:Gc.Opt(n("block_state")),barrier_state:Gc.Opt(n("block_state"))})),[Gc.Switch]:["pop",{push:"type"}],[Gc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Kc={};Object.defineProperty(Kc,"__esModule",{value:!0}),Kc.initDecoratorSchemas=void 0;const Xc=Pe,Jc=fc;Kc.initDecoratorSchemas=function(e,t){const n=Xc.Reference.bind(void 0,e),i=Xc.StringNode.bind(void 0,t);e.register("decorator",Xc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Xc.Switch]:[{push:"type"}],[Xc.Case]:{"minecraft:block_predicate_filter":{predicate:n("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Xc.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Jc.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Jc.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Xc.NumberNode(),below_noise:Xc.NumberNode({integer:!0}),above_noise:Xc.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Xc.NumberNode({integer:!0}),noise_factor:Xc.NumberNode(),noise_offset:Xc.Opt(Xc.NumberNode())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:Xc.NumberNode({integer:!0,min:1,max:32}),target_condition:n("block_predicate_worldgen"),allowed_search_condition:Xc.Opt(n("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:n("height_provider")},"minecraft:random_offset":{xz_spread:Jc.IntProvider({min:-16,max:16}),y_spread:Jc.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:Xc.Opt(Xc.NumberNode({integer:!0})),max_inclusive:Xc.Opt(Xc.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Xc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Yc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(n,i){const r=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,n);e.DensityFunction=t.Mod(t.ChoiceNode([{type:"number",node:t.NumberNode(),change:()=>0},{type:"string",priority:1,node:r({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:o("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const a=t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=t.NumberNode({min:-1e6,max:1e6}),c=t.NumberNode({integer:!0,min:-4064,max:4062});n.register("density_function",t.Mod(t.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:abs":{argument:e.DensityFunction},"minecraft:add":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:blend_density":{argument:e.DensityFunction},"minecraft:cache_2d":{argument:e.DensityFunction},"minecraft:cache_all_in_cell":{argument:e.DensityFunction},"minecraft:cache_once":{argument:e.DensityFunction},"minecraft:clamp":{input:e.DensityFunction,min:s,max:s},"minecraft:constant":{argument:t.NumberNode()},"minecraft:cube":{argument:e.DensityFunction},"minecraft:flat_cache":{argument:e.DensityFunction},"minecraft:half_negative":{argument:e.DensityFunction},"minecraft:interpolated":{argument:e.DensityFunction},"minecraft:max":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:min":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:mul":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode()},"minecraft:quarter_negative":{argument:e.DensityFunction},"minecraft:range_choice":{input:e.DensityFunction,min_inclusive:s,max_exclusive:s,when_in_range:e.DensityFunction,when_out_of_range:e.DensityFunction},"minecraft:shift":{argument:e.DensityFunction},"minecraft:shift_a":{argument:e.DensityFunction},"minecraft:shift_b":{argument:e.DensityFunction},"minecraft:shifted_noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument:e.DensityFunction},"minecraft:terrain_shaper_spline":{spline:r({enum:["offset","factor","jaggedness"]}),min_value:s,max_value:s,continentalness:e.DensityFunction,erosion:e.DensityFunction,weirdness:e.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:r({enum:["type_1","type_2"]}),noise:a,input:e.DensityFunction},"minecraft:y_clamped_gradient":{from_y:c,to_y:c,from_value:s,to_value:s}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})}))}}(Yc);var Zc={},Qc={};Object.defineProperty(Qc,"__esModule",{value:!0}),Qc.initProcessorListSchemas=Qc.Processors=void 0;const el=Pe;Qc.initProcessorListSchemas=function(e,t){const n=el.Reference.bind(void 0,e),i=el.StringNode.bind(void 0,t);Qc.Processors=el.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:n("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",el.Mod(el.ObjectNode({processors:el.ListNode(n("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",el.Mod(el.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[el.Switch]:[{push:"processor_type"}],[el.Case]:{"minecraft:block_age":{mossiness:el.NumberNode()},"minecraft:block_ignore":{blocks:el.ListNode(n("block_state"))},"minecraft:block_rot":{integrity:el.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:el.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:el.ListNode(n("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",el.Mod(el.ObjectNode({position_predicate:el.Opt(n("pos_rule_test")),location_predicate:n("rule_test"),input_predicate:n("rule_test"),output_state:n("block_state"),output_nbt:el.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:el.Opt(el.NumberNode({min:0,max:255,integer:!0})),max_dist:el.Opt(el.NumberNode({min:0,max:255,integer:!0})),min_chance:el.Opt(el.NumberNode({min:0,max:1})),max_chance:el.Opt(el.NumberNode({min:0,max:1}))};e.register("pos_rule_test",el.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[el.Switch]:[{push:"predicate_type"}],[el.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",el.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[el.Switch]:[{push:"predicate_type"}],[el.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:n("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:el.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:n("block_state"),probability:el.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Zc,"__esModule",{value:!0}),Zc.initFeatureSchemas=void 0;const tl=Pe,nl=fc,il=Qc;Zc.initFeatureSchemas=function(e,t){const n=tl.Reference.bind(void 0,e),i=tl.StringNode.bind(void 0,t),r=tl.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:n("configured_feature")}],{choiceContext:"feature"}),o=tl.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:n("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:tl.Opt(tl.NumberNode({integer:!0,min:1})),xz_spread:tl.Opt(tl.NumberNode({integer:!0,min:0})),y_spread:tl.Opt(tl.NumberNode({integer:!0,min:0})),feature:o},l={state:n("block_state"),radius:nl.IntProvider({min:0,max:8}),half_height:tl.NumberNode({integer:!0,min:0,max:4}),targets:tl.ListNode(n("block_state"))},u={cap_provider:n("block_state_provider"),stem_provider:n("block_state_provider"),foliage_radius:tl.Opt(tl.NumberNode({integer:!0}))},d=tl.ObjectNode({target:n("rule_test"),state:n("block_state")}),h={size:tl.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:tl.NumberNode({min:0,max:1}),targets:tl.ListNode(d)},p={surface:i({enum:"cave_surface"}),depth:nl.IntProvider({min:1,max:128}),vertical_range:tl.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:tl.NumberNode({min:0,max:1}),extra_edge_column_chance:tl.NumberNode({min:0,max:1}),vegetation_chance:tl.NumberNode({min:0,max:1}),xz_radius:nl.IntProvider(),replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:n("block_state_provider"),vegetation_feature:o};e.register("configured_feature",tl.Mod(tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:tl.ObjectNode({[tl.Switch]:["pop",{push:"type"}],[tl.Case]:{"minecraft:bamboo":{probability:tl.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:nl.IntProvider({min:0,max:3}),height:nl.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:n("block_predicate_worldgen"),prioritize_tip:tl.BooleanNode(),layers:tl.ListNode(tl.ObjectNode({height:nl.IntProvider({min:0}),provider:n("block_state_provider")}))},"minecraft:block_pile":{state_provider:n("block_state_provider")},"minecraft:delta_feature":{contents:n("block_state"),rim:n("block_state"),size:nl.IntProvider({min:0,max:16}),rim_size:nl.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:tl.NumberNode({integer:!0,min:1,max:512}),height:nl.IntProvider({min:0,max:128}),radius:nl.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:tl.NumberNode({integer:!0,min:0,max:64}),height_deviation:tl.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:nl.IntProvider({min:0,max:128}),density:nl.FloatProvider({min:0,max:2}),wetness:nl.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:tl.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:tl.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:tl.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:tl.BooleanNode(),exit:tl.Opt(n("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:tl.Opt(tl.BooleanNode()),crystal_beam_target:tl.Opt(n("block_pos")),spikes:tl.ListNode(tl.ObjectNode({centerX:tl.Opt(tl.NumberNode({integer:!0})),centerZ:tl.Opt(tl.NumberNode({integer:!0})),radius:tl.Opt(tl.NumberNode({integer:!0})),height:tl.Opt(tl.NumberNode({integer:!0})),guarded:tl.Opt(tl.BooleanNode())}))},"minecraft:fill_layer":{state:n("block_state"),height:tl.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:n("block_state")},"minecraft:fossil":{max_empty_corners_allowed:tl.NumberNode({integer:!0,min:0,max:7}),fossil_structures:tl.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:tl.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:il.Processors,overlay_processors:il.Processors},"minecraft:geode":{blocks:tl.ObjectNode({filling_provider:n("block_state_provider"),inner_layer_provider:n("block_state_provider"),alternate_inner_layer_provider:n("block_state_provider"),middle_layer_provider:n("block_state_provider"),outer_layer_provider:n("block_state_provider"),inner_placements:tl.ListNode(n("block_state")),cannot_replace:i({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:i({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:tl.ObjectNode({filling:tl.Opt(tl.NumberNode({min:.01,max:50})),inner_layer:tl.Opt(tl.NumberNode({min:.01,max:50})),middle_layer:tl.Opt(tl.NumberNode({min:.01,max:50})),outer_layer:tl.Opt(tl.NumberNode({min:.01,max:50}))}),crack:tl.ObjectNode({generate_crack_chance:tl.Opt(tl.NumberNode({min:0,max:1})),base_crack_size:tl.Opt(tl.NumberNode({min:0,max:5})),crack_point_offset:tl.Opt(tl.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:tl.Opt(tl.NumberNode({min:0,max:1})),use_potential_placements_chance:tl.Opt(tl.NumberNode({min:0,max:1})),use_alternate_layer0_chance:tl.Opt(tl.NumberNode({min:0,max:1})),placements_require_layer0_alternate:tl.Opt(tl.BooleanNode()),outer_wall_distance:tl.Opt(nl.IntProvider({min:1,max:20})),distribution_points:tl.Opt(nl.IntProvider({min:1,max:20})),point_offset:tl.Opt(nl.IntProvider({min:0,max:10})),min_gen_offset:tl.Opt(tl.NumberNode({integer:!0})),max_gen_offset:tl.Opt(tl.NumberNode({integer:!0})),invalid_blocks_threshold:tl.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:tl.Opt(tl.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:tl.Opt(tl.NumberNode({min:0,max:1})),can_place_on_floor:tl.Opt(tl.BooleanNode()),can_place_on_ceiling:tl.Opt(tl.BooleanNode()),can_place_on_wall:tl.Opt(tl.BooleanNode()),can_be_placed_on:nl.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:n("block_state"),decor_state:n("block_state"),stem_state:n("block_state"),valid_base_block:n("block_state"),planted:tl.Opt(tl.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:n("block_state")},"minecraft:lake":{fluid:n("block_state_provider"),barrier:n("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:tl.Opt(tl.NumberNode({integer:!0,min:1,max:512})),column_radius:nl.IntProvider({min:0,max:60}),height_scale:nl.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:tl.NumberNode({min:0,max:1}),stalactite_bluntness:nl.FloatProvider({min:.1,max:10}),stalagmite_bluntness:nl.FloatProvider({min:.1,max:10}),wind_speed:nl.FloatProvider({min:0,max:2}),min_radius_for_wind:tl.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:tl.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:n("block_state_provider"),spread_width:tl.NumberNode({integer:!0,min:1}),spread_height:tl.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:n("block_state"),target:n("block_state"),radius:nl.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_directional_spread:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_spread_radius2:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_spread_radius3:tl.Opt(tl.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:tl.ListNode(tl.ObjectNode({chance:tl.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:tl.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:tl.NumberNode({integer:!0,min:1,max:64}),root_radius:tl.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:tl.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:tl.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:tl.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:tl.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:tl.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:tl.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:n("block_state_provider"),hanging_root_state_provider:n("block_state_provider"),allowed_tree_position:n("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:nl.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:tl.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:n("block_state_provider")},"minecraft:simple_random_selector":{features:nl.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:n("fluid_state"),rock_count:tl.NumberNode({integer:!0}),hole_count:tl.NumberNode({integer:!0}),requires_block_below:tl.BooleanNode(),valid_blocks:nl.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:tl.Opt(tl.BooleanNode()),force_dirt:tl.Opt(tl.BooleanNode()),minimum_size:n("feature_size"),dirt_provider:n("block_state_provider"),trunk_provider:n("block_state_provider"),foliage_provider:n("block_state_provider"),trunk_placer:tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:tl.NumberNode({integer:!0,min:0,max:32}),height_rand_a:tl.NumberNode({integer:!0,min:0,max:24}),height_rand_b:tl.NumberNode({integer:!0,min:0,max:24}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:bending_trunk_placer":{bend_length:nl.IntProvider({min:1,max:64}),min_height_for_leaves:tl.Opt(tl.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:nl.IntProvider({min:0,max:16}),offset:nl.IntProvider({min:0,max:16}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:blob_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:nl.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:nl.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:nl.IntProvider({min:1,max:512}),leaf_placement_attempts:tl.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:nl.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:tl.ListNode(tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:alter_ground":{provider:n("block_state_provider")},"minecraft:beehive":{probability:tl.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:tl.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:tl.NumberNode({integer:!0,min:1}),spread_height:tl.NumberNode({integer:!0,min:1}),max_height:tl.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:tl.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:tl.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:tl.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",tl.Mod(tl.ObjectNode({feature:r,placement:tl.ListNode(n("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",tl.Mod(tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:tl.Opt(tl.NumberNode({min:0,max:80})),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:two_layers_feature_size":{limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:81})),lower_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),upper_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:80})),upper_limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:80})),lower_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),middle_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),upper_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:tl.NumberNode({integer:!0}),noise:n("noise_parameters"),scale:tl.Mod(tl.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",tl.Mod(tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:nl.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:n("noise_parameters"),slow_scale:tl.Mod(tl.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:tl.ListNode(n("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:tl.NumberNode({min:-1,max:1}),high_chance:tl.NumberNode({min:0,max:1}),default_state:n("block_state"),low_states:tl.ListNode(n("block_state")),high_states:tl.ListNode(n("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:tl.ListNode(n("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:nl.IntProvider(),source:n("block_state_provider")},"minecraft:rotated_block_provider":{state:n("block_state")},"minecraft:simple_state_provider":{state:n("block_state")},"minecraft:weighted_state_provider":{entries:tl.ListNode(tl.Mod(tl.ObjectNode({weight:tl.NumberNode({integer:!0,min:1}),data:n("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:tl.Opt(tl.ListNode(tl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",tl.Mod(tl.ObjectNode({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:all_of":{predicates:tl.ListNode(n("block_predicate_worldgen"))},"minecraft:any_of":{predicates:tl.ListNode(n("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:nl.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:nl.Tag({resource:"fluid"})}),"minecraft:not":{predicate:n("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:n("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var rl={};Object.defineProperty(rl,"__esModule",{value:!0}),rl.initNoiseSettingsSchemas=void 0;const ol=Pe,al=fc,sl=Yc;rl.initNoiseSettingsSchemas=function(e,t){const n=ol.Reference.bind(void 0,e),i=ol.StringNode.bind(void 0,t);e.register("noise_settings",ol.Mod(ol.ObjectNode({sea_level:ol.NumberNode({integer:!0}),disable_mob_generation:ol.BooleanNode(),aquifers_enabled:ol.BooleanNode(),ore_veins_enabled:ol.BooleanNode(),legacy_random_source:ol.BooleanNode(),default_block:n("block_state"),default_fluid:n("block_state"),noise:ol.ObjectNode({min_y:ol.NumberNode({integer:!0,min:-2048,max:2047}),height:ol.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ol.NumberNode({integer:!0}),size_vertical:ol.NumberNode({integer:!0}),sampling:ol.ObjectNode({xz_scale:ol.NumberNode(),y_scale:ol.NumberNode(),xz_factor:ol.NumberNode(),y_factor:ol.NumberNode()}),bottom_slide:n("noise_slider"),top_slide:n("noise_slider"),terrain_shaper:n("terrain_shaper")}),noise_router:ol.ObjectNode({barrier:sl.DensityFunction,fluid_level_floodedness:sl.DensityFunction,fluid_level_spread:sl.DensityFunction,lava:sl.DensityFunction,temperature:sl.DensityFunction,vegetation:sl.DensityFunction,continents:sl.DensityFunction,erosion:sl.DensityFunction,depth:sl.DensityFunction,ridges:sl.DensityFunction,initial_density_without_jaggedness:sl.DensityFunction,final_density:sl.DensityFunction,vein_toggle:sl.DensityFunction,vein_ridged:sl.DensityFunction,vein_gap:sl.DensityFunction}),surface_rule:n("material_rule")},{context:"noise_settings"}),(e=>({default:()=>al.DefaultNoiseSettings,validate:(t,n,i,r)=>{var o,a,s,c;return(null===(o=null==(n=e.validate(t,n,i,r))?void 0:n.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==n?void 0:n.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==n?void 0:n.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==n?void 0:n.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),n}})))),e.register("noise_slider",ol.ObjectNode({target:ol.NumberNode(),size:ol.NumberNode({integer:!0,min:0}),offset:ol.NumberNode({integer:!0})})),e.register("generator_layer",ol.Mod(ol.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:ol.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ol.Mod(ol.ObjectNode({offset:n("terrain_spline"),factor:n("terrain_spline"),jaggedness:n("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ol.Mod(ol.ChoiceNode([{type:"number",node:ol.NumberNode()},{type:"object",node:ol.ObjectNode({coordinate:ol.Mod(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ol.ListNode(ol.ObjectNode({location:ol.NumberNode(),derivative:ol.NumberNode(),value:n("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var cl={};Object.defineProperty(cl,"__esModule",{value:!0}),cl.initStructureFeatureSchemas=void 0;const ll=Pe,ul=fc,dl=Hc;cl.initStructureFeatureSchemas=function(e,t){const n=ll.StringNode.bind(void 0,t),i=ll.Reference.bind(void 0,e),r={start_pool:n({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ll.NumberNode({integer:!0})};e.register("configured_structure_feature",ll.Mod(ll.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:ul.Tag({resource:"$worldgen/biome"}),adapt_noise:ll.Opt(ll.BooleanNode()),spawn_overrides:ll.MapNode(n({enum:"mob_category"}),ll.ObjectNode({bounding_box:n({enum:["piece","full"]}),spawns:dl.MobCategorySpawnSettings})),config:ll.ObjectNode({[ll.Switch]:["pop",{push:"type"}],[ll.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:ll.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:n({enum:["normal","mesa"]}),probability:ll.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:n({enum:["cold","warm"]}),large_probability:ll.NumberNode({min:0,max:1}),cluster_probability:ll.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:n({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ll.Opt(ll.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var hl={};Object.defineProperty(hl,"__esModule",{value:!0}),hl.initStructureSetSchemas=void 0;const pl=Pe,ml=fc;hl.initStructureSetSchemas=function(e,t){const n=pl.StringNode.bind(void 0,t),i=pl.Reference.bind(void 0,e);e.register("structure_set",pl.ObjectNode({structures:pl.ListNode(pl.ObjectNode({structure:ml.Tag({resource:"$worldgen/configured_structure_feature"}),weight:pl.NumberNode({integer:!0,min:1})})),placement:i("structure_placement")},{context:"structure_set"})),e.register("structure_placement",pl.Mod(pl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[pl.Switch]:[{push:"type"}],[pl.Case]:{"minecraft:concentric_rings":{distance:pl.NumberNode({integer:!0,min:0,max:1023}),spread:pl.NumberNode({integer:!0,min:0,max:1023}),count:pl.NumberNode({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:pl.Opt(n({enum:["linear","triangular"]})),spacing:pl.NumberNode({integer:!0,min:0,max:4096}),separation:pl.Mod(pl.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,n,i,r)=>(t.pop().push("spacing").get()<=n&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,n,i,r))}))),salt:pl.NumberNode({integer:!0,min:0}),locate_offset:pl.Opt(pl.ListNode(pl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var fl={};Object.defineProperty(fl,"__esModule",{value:!0}),fl.initSurfaceRuleSchemas=void 0;const gl=Pe;fl.initSurfaceRuleSchemas=function(e,t){const n=gl.StringNode.bind(void 0,t),i=gl.Reference.bind(void 0,e);e.register("material_rule",gl.Mod(gl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/material_rule"}}),[gl.Switch]:[{push:"type"}],[gl.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:gl.ListNode(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",gl.Mod(gl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/material_condition"}}),[gl.Switch]:[{push:"type"}],[gl.Case]:{"minecraft:biome":{biome_is:gl.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:n({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:gl.NumberNode(),max_threshold:gl.NumberNode()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:gl.NumberNode({integer:!0}),surface_type:n({enum:"cave_surface"}),add_surface_depth:gl.BooleanNode(),secondary_depth_range:gl.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:n(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:gl.NumberNode({integer:!0}),surface_depth_multiplier:gl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:gl.BooleanNode()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:gl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:gl.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var _l={};Object.defineProperty(_l,"__esModule",{value:!0}),_l.initTemplatePoolSchemas=void 0;const bl=Pe,vl=Qc;_l.initTemplatePoolSchemas=function(e,t){const n=bl.Reference.bind(void 0,e),i=bl.StringNode.bind(void 0,t);e.register("template_pool",bl.Mod(bl.ObjectNode({name:i(),fallback:i(),elements:bl.ListNode(n("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",bl.Mod(bl.ObjectNode({weight:bl.NumberNode({integer:!0,min:1}),element:n("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",bl.Mod(bl.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[bl.Switch]:[{push:"element_type"}],[bl.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:vl.Processors},"minecraft:list_pool_element":{elements:bl.ListNode(n("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:vl.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initWorldgenSchemas=void 0;const yl=Hc,wl=Vc,xl=Kc,Al=Yc,Nl=Zc,kl=rl,Cl=Qc,El=cl,Sl=hl,Ol=fl,Fl=_l;Wc.initWorldgenSchemas=function(e,t){Cl.initProcessorListSchemas(e,t),Al.initDensityFunctionSchemas(e,t),yl.initBiomeSchemas(e,t),wl.initCarverSchemas(e,t),xl.initDecoratorSchemas(e,t),Nl.initFeatureSchemas(e,t),kl.initNoiseSettingsSchemas(e,t),El.initStructureFeatureSchemas(e,t),Sl.initStructureSetSchemas(e,t),Ol.initSurfaceRuleSchemas(e,t),Fl.initTemplatePoolSchemas(e,t)};var Dl={};Object.defineProperty(Dl,"__esModule",{value:!0}),Dl.initWorldSettingsSchemas=void 0;const Bl=Pe;Dl.initWorldSettingsSchemas=function(e,t){const n=Bl.Reference.bind(void 0,e),i=Bl.StringNode.bind(void 0,t);e.register("world_settings",Bl.Mod(Bl.ObjectNode({generate_features:Bl.BooleanNode(),bonus_chest:Bl.BooleanNode(),seed:Bl.NumberNode({integer:!0}),dimensions:Bl.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),n("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(oc,"__esModule",{value:!0}),oc.initSchemas=void 0;const Ll=ac,Ml=cc,Tl=fc,Rl=gc,$l=vc,Il=xc,jl=kc,Pl=Sc,zl=Lc,Ul=Tc,Wl=$c,Hl=jc,Vl=zc,Gl=Wc,ql=Dl;oc.initSchemas=function(e,t){Tl.initCommonSchemas(e,t),Ll.initAdvancementSchemas(e,t),Ml.initAssetsSchemas(e,t),Rl.initConditionSchemas(e,t),Il.initDimensionTypeSchemas(e,t),$l.initDimensionSchemas(e,t),jl.initItemModifierSchemas(e,t),Pl.initLootTableSchemas(e,t),zl.initPackMcmetaSchemas(e,t),Ul.initPredicatesSchemas(e,t),Wl.initRecipeSchemas(e,t),Hl.initTagsSchemas(e,t),Vl.initTextComponentSchemas(e,t),Gl.initWorldgenSchemas(e,t),ql.initWorldSettingsSchemas(e,t)};var Kl=je&&je.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),Xl=je&&je.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Jl=je&&je.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&Kl(t,e,n);return Xl(t,e),t};Object.defineProperty(ic,"__esModule",{value:!0});var Yl=ic.getSchemas=ic.getCollections=void 0;const Zl=Pe,Ql=rc,eu=oc;var tu=ic.lootContext=Jl(Oc);var nu=ic.getCollections=function(){const e=new Zl.CollectionRegistry;return Ql.initCollections(e),e};Yl=ic.getSchemas=function(e){const t=new Zl.SchemaRegistry;return eu.initSchemas(t,e),t};var iu=Object.freeze(Object.assign(Object.create(null),ic,{[Symbol.toStringTag]:"Module",get getSchemas(){return Yl},get getCollections(){return nu},lootContext:tu,default:ic})); -/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function ru(e){let t=e.length;for(;--t>=0;)e[t]=0}const ou=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),au=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),su=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),cu=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lu=new Array(576);ru(lu);const uu=new Array(60);ru(uu);const du=new Array(512);ru(du);const hu=new Array(256);ru(hu);const pu=new Array(29);ru(pu);const mu=new Array(30);function fu(e,t,n,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}let gu,_u,bu;function vu(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}ru(mu);const yu=e=>e<256?du[e]:du[256+(e>>>7)],wu=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},xu=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<{xu(e,n[2*t],n[2*t+1])},Nu=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},ku=(e,t,n)=>{const i=new Array(16);let r,o,a=0;for(r=1;r<=15;r++)i[r]=a=a+n[r-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=Nu(i[t]++,t))}},Cu=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},Eu=e=>{e.bi_valid>8?wu(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Su=(e,t,n,i)=>{const r=2*t,o=2*n;return e[r]{const i=e.heap[n];let r=n<<1;for(;r<=e.heap_len&&(r{let i,r,o,a,s=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],r=e.pending_buf[e.l_buf+s],s++,0===i?Au(e,r,t):(o=hu[r],Au(e,o+256+1,t),a=ou[o],0!==a&&(r-=pu[o],xu(e,r,a)),i--,o=yu(i),Au(e,o,n),a=au[o],0!==a&&(i-=mu[o],xu(e,i,a)))}while(s{const n=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)Ou(e,n,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ou(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[2*c]=n[2*a]+n[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[2*a+1]=n[2*s+1]=c,e.heap[1]=c++,Ou(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,u,d,h,p,m,f=0;for(h=0;h<=15;h++)e.bl_count[h]=0;for(n[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],h=n[2*n[2*u+1]+1]+1,h>c&&(h=c,f++),n[2*u+1]=h,u>i||(e.bl_count[h]++,p=0,u>=s&&(p=a[u-s]),m=n[2*u],e.opt_len+=m*(h+p),o&&(e.static_len+=m*(r[2*u+1]+p)));if(0!==f){do{for(h=c-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(h=c;0!==h;h--)for(u=e.bl_count[h];0!==u;)d=e.heap[--l],d>i||(n[2*d+1]!==h&&(e.opt_len+=(h-n[2*d+1])*n[2*d],n[2*d+1]=h),u--)}})(e,t),ku(n,l,e.bl_count)},Bu=(e,t,n)=>{let i,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(n+1)+1]=65535,i=0;i<=n;i++)r=a,a=t[2*(i+1)+1],++s{let i,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),i=0;i<=n;i++)if(r=a,a=t[2*(i+1)+1],!(++s{xu(e,0+(i?1:0),3),((e,t,n,i)=>{Eu(e),i&&(wu(e,n),wu(e,~n)),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n})(e,t,n,!0)};var Ru={_tr_init:e=>{Mu||((()=>{let e,t,n,i,r;const o=new Array(16);for(n=0,i=0;i<28;i++)for(pu[i]=n,e=0;e<1<>=7;i<30;i++)for(mu[i]=r<<7,e=0;e<1<{let r,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Du(e,e.l_desc),Du(e,e.d_desc),a=(e=>{let t;for(Bu(e,e.dyn_ltree,e.l_desc.max_code),Bu(e,e.dyn_dtree,e.d_desc.max_code),Du(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*cu[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=r&&(r=o)):r=o=n+5,n+4<=r&&-1!==t?Tu(e,t,n,i):4===e.strategy||o===r?(xu(e,2+(i?1:0),3),Fu(e,lu,uu)):(xu(e,4+(i?1:0),3),((e,t,n,i)=>{let r;for(xu(e,t-257,5),xu(e,n-1,5),xu(e,i-4,4),r=0;r(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(hu[n]+256+1)]++,e.dyn_dtree[2*yu(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{xu(e,2,3),Au(e,256,lu),(e=>{16===e.bi_valid?(wu(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var $u=(e,t,n,i)=>{let r=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==n;){a=n>2e3?2e3:n,n-=a;do{r=r+t[i++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0};const Iu=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var ju=(e,t,n,i)=>{const r=Iu,o=i+n;e^=-1;for(let a=i;a>>8^r[255&(e^t[a])];return-1^e},Pu={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Uu,_tr_stored_block:Wu,_tr_flush_block:Hu,_tr_tally:Vu,_tr_align:Gu}=Ru,{Z_NO_FLUSH:qu,Z_PARTIAL_FLUSH:Ku,Z_FULL_FLUSH:Xu,Z_FINISH:Ju,Z_BLOCK:Yu,Z_OK:Zu,Z_STREAM_END:Qu,Z_STREAM_ERROR:ed,Z_DATA_ERROR:td,Z_BUF_ERROR:nd,Z_DEFAULT_COMPRESSION:id,Z_FILTERED:rd,Z_HUFFMAN_ONLY:od,Z_RLE:ad,Z_FIXED:sd,Z_DEFAULT_STRATEGY:cd,Z_UNKNOWN:ld,Z_DEFLATED:ud}=zu,dd=(e,t)=>(e.msg=Pu[t],t),hd=e=>(e<<1)-(e>4?9:0),pd=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let md=(e,t,n)=>(t<{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},gd=(e,t)=>{Hu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,fd(e.strm)},_d=(e,t)=>{e.pending_buf[e.pending++]=t},bd=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},vd=(e,t,n,i)=>{let r=e.avail_in;return r>i&&(r=i),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),1===e.state.wrap?e.adler=$u(e.adler,t,r,n):2===e.state.wrap&&(e.adler=ju(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},yd=(e,t)=>{let n,i,r=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,h=e.strstart+258;let p=l[o+a-1],m=l[o+a];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do{if(n=t,l[n+a]===m&&l[n+a-1]===p&&l[n]===l[o]&&l[++n]===l[o+1]){o+=2,n++;do{}while(l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&oa){if(e.match_start=t,a=i,i>=s)break;p=l[o+a-1],m=l[o+a]}}}while((t=d[t&u])>c&&0!=--r);return a<=e.lookahead?a:e.lookahead},wd=e=>{const t=e.w_size;let n,i,r,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,n=i;do{r=e.head[--n],e.head[n]=r>=t?r-t:0}while(--i);i=t,n=i;do{r=e.prev[--n],e.prev[n]=r>=t?r-t:0}while(--i);o+=t}if(0===e.strm.avail_in)break;if(i=vd(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=i,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=md(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=md(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},xd=(e,t)=>{let n,i;for(;;){if(e.lookahead<262){if(wd(e),e.lookahead<262&&t===qu)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=md(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-262&&(e.match_length=yd(e,n)),e.match_length>=3)if(i=Vu(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=md(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=md(e,e.ins_h,e.window[e.strstart+1]);else i=Vu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(gd(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===Ju?(gd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(gd(e,!1),0===e.strm.avail_out)?1:2},Ad=(e,t)=>{let n,i,r;for(;;){if(e.lookahead<262){if(wd(e),e.lookahead<262&&t===qu)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=md(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,i=Vu(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=md(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(gd(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=Vu(e,0,e.window[e.strstart-1]),i&&gd(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Vu(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===Ju?(gd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(gd(e,!1),0===e.strm.avail_out)?1:2};function Nd(e,t,n,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=r}const kd=[new Nd(0,0,0,0,((e,t)=>{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(wd(e),0===e.lookahead&&t===qu)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+n;if((0===e.strstart||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,gd(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(gd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Ju?(gd(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(gd(e,!1),e.strm.avail_out),1)})),new Nd(4,4,8,4,xd),new Nd(4,5,16,8,xd),new Nd(4,6,32,32,xd),new Nd(4,4,16,16,Ad),new Nd(8,16,32,32,Ad),new Nd(8,16,128,128,Ad),new Nd(8,32,128,256,Ad),new Nd(32,128,258,1024,Ad),new Nd(32,258,258,4096,Ad)];function Cd(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ud,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),pd(this.dyn_ltree),pd(this.dyn_dtree),pd(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),pd(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),pd(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ed=e=>{if(!e||!e.state)return dd(e,ed);e.total_in=e.total_out=0,e.data_type=ld;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=qu,Uu(t),Zu},Sd=e=>{const t=Ed(e);var n;return t===Zu&&((n=e.state).window_size=2*n.w_size,pd(n.head),n.max_lazy_match=kd[n.level].max_lazy,n.good_match=kd[n.level].good_length,n.nice_match=kd[n.level].nice_length,n.max_chain_length=kd[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),t},Od=(e,t,n,i,r,o)=>{if(!e)return ed;let a=1;if(t===id&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),r<1||r>9||n!==ud||i<8||i>15||t<0||t>9||o<0||o>sd)return dd(e,ed);8===i&&(i=9);const s=new Cd;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=i,s.w_size=1<Od(e,t,ud,15,8,cd),deflateInit2:Od,deflateReset:Sd,deflateResetKeep:Ed,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?ed:(e.state.gzhead=t,Zu):ed,deflate:(e,t)=>{let n,i;if(!e||!e.state||t>Yu||t<0)return e?dd(e,ed):ed;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==Ju)return dd(e,0===e.avail_out?nd:ed);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,_d(r,31),_d(r,139),_d(r,8),r.gzhead?(_d(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),_d(r,255&r.gzhead.time),_d(r,r.gzhead.time>>8&255),_d(r,r.gzhead.time>>16&255),_d(r,r.gzhead.time>>24&255),_d(r,9===r.level?2:r.strategy>=od||r.level<2?4:0),_d(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(_d(r,255&r.gzhead.extra.length),_d(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ju(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(_d(r,0),_d(r,0),_d(r,0),_d(r,0),_d(r,0),_d(r,9===r.level?2:r.strategy>=od||r.level<2?4:0),_d(r,3),r.status=113);else{let t=ud+(r.w_bits-8<<4)<<8,n=-1;n=r.strategy>=od||r.level<2?0:r.level<6?1:6===r.level?2:3,t|=n<<6,0!==r.strstart&&(t|=32),t+=31-t%31,r.status=113,bd(r,t),0!==r.strstart&&(bd(r,e.adler>>>16),bd(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(n=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>n&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),fd(e),n=r.pending,r.pending!==r.pending_buf_size));)_d(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>n&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),fd(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindexn&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),0===i&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),fd(e),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindexn&&(e.adler=ju(e.adler,r.pending_buf,r.pending-n,n)),0===i&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&fd(e),r.pending+2<=r.pending_buf_size&&(_d(r,255&e.adler),_d(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(fd(e),0===e.avail_out)return r.last_flush=-1,Zu}else if(0===e.avail_in&&hd(t)<=hd(o)&&t!==Ju)return dd(e,nd);if(666===r.status&&0!==e.avail_in)return dd(e,nd);if(0!==e.avail_in||0!==r.lookahead||t!==qu&&666!==r.status){let n=r.strategy===od?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(wd(e),0===e.lookahead)){if(t===qu)return 1;break}if(e.match_length=0,n=Vu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(gd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Ju?(gd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(gd(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===ad?((e,t)=>{let n,i,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(wd(e),e.lookahead<=258&&t===qu)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,i=a[r],i===a[++r]&&i===a[++r]&&i===a[++r])){o=e.strstart+258;do{}while(i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=Vu(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Vu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(gd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Ju?(gd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(gd(e,!1),0===e.strm.avail_out)?1:2})(r,t):kd[r.level].func(r,t);if(3!==n&&4!==n||(r.status=666),1===n||3===n)return 0===e.avail_out&&(r.last_flush=-1),Zu;if(2===n&&(t===Ku?Gu(r):t!==Yu&&(Wu(r,0,0,!1),t===Xu&&(pd(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),fd(e),0===e.avail_out))return r.last_flush=-1,Zu}return t!==Ju?Zu:r.wrap<=0?Qu:(2===r.wrap?(_d(r,255&e.adler),_d(r,e.adler>>8&255),_d(r,e.adler>>16&255),_d(r,e.adler>>24&255),_d(r,255&e.total_in),_d(r,e.total_in>>8&255),_d(r,e.total_in>>16&255),_d(r,e.total_in>>24&255)):(bd(r,e.adler>>>16),bd(r,65535&e.adler)),fd(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Zu:Qu)},deflateEnd:e=>{if(!e||!e.state)return ed;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?dd(e,ed):(e.state=null,113===t?dd(e,td):Zu)},deflateSetDictionary:(e,t)=>{let n=t.length;if(!e||!e.state)return ed;const i=e.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return ed;if(1===r&&(e.adler=$u(e.adler,t,n,0)),i.wrap=0,n>=i.w_size){0===r&&(pd(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(n-i.w_size,n),0),t=e,n=i.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,wd(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=md(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,wd(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,i.wrap=r,Zu},deflateInfo:"pako deflate (from Nodeca project)"};const Dd=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Bd=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)Dd(n,t)&&(e[t]=n[t])}}return e},Ld=e=>{let t=0;for(let i=0,r=e.length;i=252?6:zx>=248?5:zx>=240?4:zx>=224?3:zx>=192?2:1;Td[254]=Td[254]=1;var Rd=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,i,r,o,a=e.length,s=0;for(r=0;r>>6,t[o++]=128|63&n):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|63&n):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|63&n);return t},$d=(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,r;const o=new Array(2*n);for(r=0,i=0;i4)o[r++]=65533,i+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&i1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Md)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+Td[e[n]]>t?n:t};var jd=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Pd=Object.prototype.toString,{Z_NO_FLUSH:zd,Z_SYNC_FLUSH:Ud,Z_FULL_FLUSH:Wd,Z_FINISH:Hd,Z_OK:Vd,Z_STREAM_END:Gd,Z_DEFAULT_COMPRESSION:qd,Z_DEFAULT_STRATEGY:Kd,Z_DEFLATED:Xd}=zu;function Jd(e){this.options=Bd({level:qd,method:Xd,chunkSize:16384,windowBits:15,memLevel:8,strategy:Kd},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new jd,this.strm.avail_out=0;let n=Fd.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Vd)throw new Error(Pu[n]);if(t.header&&Fd.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Rd(t.dictionary):"[object ArrayBuffer]"===Pd.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=Fd.deflateSetDictionary(this.strm,e),n!==Vd)throw new Error(Pu[n]);this._dict_set=!0}}Jd.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Hd:zd,"string"==typeof e?n.input=Rd(e):"[object ArrayBuffer]"===Pd.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(o===Ud||o===Wd)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=Fd.deflate(n,o),r===Gd)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=Fd.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Vd;if(0!==n.avail_out){if(o>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},Jd.prototype.onData=function(e){this.chunks.push(e)},Jd.prototype.onEnd=function(e){e===Vd&&(this.result=Ld(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Yd=function(e,t){let n,i,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,A,N,k;const C=e.state;n=e.next_in,N=e.input,i=n+(e.avail_in-5),r=e.next_out,k=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),s=C.dmax,c=C.wsize,l=C.whave,u=C.wnext,d=C.window,h=C.hold,p=C.bits,m=C.lencode,f=C.distcode,g=(1<>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)k[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<>>=v,p-=v),p<15&&(h+=N[n++]<>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<s){e.msg="invalid distance too far back",C.mode=30;break e}if(h>>>=v,p-=v,v=r-o,w>v){if(v=w-v,v>l&&C.sane){e.msg="invalid distance too far back",C.mode=30;break e}if(x=0,A=d,0===u){if(x+=c-v,v2;)k[r++]=A[x++],k[r++]=A[x++],k[r++]=A[x++],y-=3;y&&(k[r++]=A[x++],y>1&&(k[r++]=A[x++]))}else{x=r-w;do{k[r++]=k[x++],k[r++]=k[x++],k[r++]=k[x++],y-=3}while(y>2);y&&(k[r++]=k[x++],y>1&&(k[r++]=k[x++]))}break}}break}}while(n>3,n-=y,p-=y<<3,h&=(1<{const c=s.bits;let l,u,d,h,p,m,f=0,g=0,_=0,b=0,v=0,y=0,w=0,x=0,A=0,N=0,k=null,C=0;const E=new Uint16Array(16),S=new Uint16Array(16);let O,F,D,B=null,L=0;for(f=0;f<=15;f++)E[f]=0;for(g=0;g=1&&0===E[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+E[f];for(g=0;g852||2===e&&A>592)return 1;for(;;){O=f-w,a[g]m?(F=B[L+a[g]],D=k[C+a[g]]):(F=96,D=0),l=1<>w)+u]=O<<24|F<<16|D|0}while(0!==u);for(l=1<>=1;if(0!==l?(N&=l-1,N+=l):N=0,g++,0==--E[f]){if(f===b)break;f=t[n+a[g]]}if(f>v&&(N&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<852||2===e&&A>592)return 1;d=N&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==N&&(r[p+N]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:ih,Z_BLOCK:rh,Z_TREES:oh,Z_OK:ah,Z_STREAM_END:sh,Z_NEED_DICT:ch,Z_STREAM_ERROR:lh,Z_DATA_ERROR:uh,Z_MEM_ERROR:dh,Z_BUF_ERROR:hh,Z_DEFLATED:ph}=zu,mh=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function fh(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const gh=e=>{if(!e||!e.state)return lh;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,ah},_h=e=>{if(!e||!e.state)return lh;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,gh(e)},bh=(e,t)=>{let n;if(!e||!e.state)return lh;const i=e.state;return t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?lh:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,_h(e))},vh=(e,t)=>{if(!e)return lh;const n=new fh;e.state=n,n.window=null;const i=bh(e,t);return i!==ah&&(e.state=null),i};let yh,wh,xh=!0;const Ah=e=>{if(xh){yh=new Int32Array(512),wh=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(nh(1,e.lens,0,288,yh,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;nh(2,e.lens,0,32,wh,0,e.work,{bits:5}),xh=!1}e.lencode=yh,e.lenbits=9,e.distcode=wh,e.distbits=5},Nh=(e,t,n,i)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(n-i,n-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(n-i,n),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavevh(e,15),inflateInit2:vh,inflate:(e,t)=>{let n,i,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,A,N=0;const k=new Uint8Array(4);let C,E;const S=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return lh;n=e.state,12===n.mode&&(n.mode=13),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,i=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,h=c,A=ah;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=i[o++]<>>8&255,n.check=ju(n.check,k,2,0),l=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=30;break}if((15&l)!==ph){e.msg="unknown compression method",n.mode=30;break}if(l>>>=4,u-=4,x=8+(15&l),0===n.wbits)n.wbits=x;else if(x>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(k[0]=255&l,k[1]=l>>>8&255,n.check=ju(n.check,k,2,0)),l=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=i[o++]<>>8&255,k[2]=l>>>16&255,k[3]=l>>>24&255,n.check=ju(n.check,k,4,0)),l=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=i[o++]<>8),512&n.flags&&(k[0]=255&l,k[1]=l>>>8&255,n.check=ju(n.check,k,2,0)),l=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break e;s--,l+=i[o++]<>>8&255,n.check=ju(n.check,k,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(p=n.length,p>s&&(p=s),p&&(n.head&&(x=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(o,o+p),x)),512&n.flags&&(n.check=ju(n.check,i,p,o)),s-=p,o+=p,n.length-=p),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break e;p=0;do{x=i[o+p++],n.head&&x&&n.length<65536&&(n.head.name+=String.fromCharCode(x))}while(x&&p>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=i[o++]<>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=i[o++]<>>=1,u-=1,3&l){case 0:n.mode=14;break;case 1:if(Ah(n),n.mode=20,t===oh){l>>>=2,u-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=i[o++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&l,l=0,u=0,n.mode=15,t===oh)break e;case 15:n.mode=16;case 16:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;r.set(i.subarray(o,o+p),a),s-=p,o+=p,c-=p,a+=p,n.length-=p;break}n.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=i[o++]<>>=5,u-=5,n.ndist=1+(31&l),l>>>=5,u-=5,n.ncode=4+(15&l),l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,u-=3}for(;n.have<19;)n.lens[S[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,C={bits:n.lenbits},A=nh(0,n.lens,0,19,n.lencode,0,n.work,C),n.lenbits=C.bits,A){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=i[o++]<>>=g,u-=g,n.lens[n.have++]=b;else{if(16===b){for(E=g+2;u>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}x=n.lens[n.have-1],p=3+(3&l),l>>>=2,u-=2}else if(17===b){for(E=g+3;u>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(E=g+7;u>>=g,u-=g,x=0,p=11+(127&l),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;p--;)n.lens[n.have++]=x}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,C={bits:n.lenbits},A=nh(1,n.lens,0,n.nlen,n.lencode,0,n.work,C),n.lenbits=C.bits,A){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,C={bits:n.distbits},A=nh(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,C),n.distbits=C.bits,A){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,t===oh)break e;case 20:n.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,Yd(e,h),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,i=e.input,s=e.avail_in,l=n.hold,u=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;N=n.lencode[l&(1<>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=i[o++]<>v)],g=N>>>24,_=N>>>16&255,b=65535&N,!(v+g<=u);){if(0===s)break e;s--,l+=i[o++]<>>=v,u-=v,n.back+=v}if(l>>>=g,u-=g,n.back+=g,n.length=b,0===_){n.mode=26;break}if(32&_){n.back=-1,n.mode=12;break}if(64&_){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&_,n.mode=22;case 22:if(n.extra){for(E=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=n.distcode[l&(1<>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=i[o++]<>v)],g=N>>>24,_=N>>>16&255,b=65535&N,!(v+g<=u);){if(0===s)break e;s--,l+=i[o++]<>>=v,u-=v,n.back+=v}if(l>>>=g,u-=g,n.back+=g,64&_){e.msg="invalid distance code",n.mode=30;break}n.offset=b,n.extra=15&_,n.mode=24;case 24:if(n.extra){for(E=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===c)break e;if(p=h-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),f=n.window}else f=r,m=a-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do{r[a++]=f[m++]}while(--p);0===n.length&&(n.mode=21);break;case 26:if(0===c)break e;r[a++]=n.length,c--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break e;s--,l|=i[o++]<{if(!e||!e.state)return lh;let t=e.state;return t.window&&(t.window=null),e.state=null,ah},inflateGetHeader:(e,t)=>{if(!e||!e.state)return lh;const n=e.state;return 0==(2&n.wrap)?lh:(n.head=t,t.done=!1,ah)},inflateSetDictionary:(e,t)=>{const n=t.length;let i,r,o;return e&&e.state?(i=e.state,0!==i.wrap&&11!==i.mode?lh:11===i.mode&&(r=1,r=$u(r,t,n,0),r!==i.check)?uh:(o=Nh(e,t,n,n),o?(i.mode=31,dh):(i.havedict=1,ah))):lh},inflateInfo:"pako inflate (from Nodeca project)"};var Ch=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Eh=Object.prototype.toString,{Z_NO_FLUSH:Sh,Z_FINISH:Oh,Z_OK:Fh,Z_STREAM_END:Dh,Z_NEED_DICT:Bh,Z_STREAM_ERROR:Lh,Z_DATA_ERROR:Mh,Z_MEM_ERROR:Th}=zu;function Rh(e){this.options=Bd({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new jd,this.strm.avail_out=0;let n=kh.inflateInit2(this.strm,t.windowBits);if(n!==Fh)throw new Error(Pu[n]);if(this.header=new Ch,kh.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Rd(t.dictionary):"[object ArrayBuffer]"===Eh.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=kh.inflateSetDictionary(this.strm,t.dictionary),n!==Fh)))throw new Error(Pu[n])}Rh.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?Oh:Sh,"[object ArrayBuffer]"===Eh.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),o=kh.inflate(n,a),o===Bh&&r&&(o=kh.inflateSetDictionary(n,r),o===Fh?o=kh.inflate(n,a):o===Mh&&(o=Bh));n.avail_in>0&&o===Dh&&n.state.wrap>0&&0!==e[n.next_in];)kh.inflateReset(n),o=kh.inflate(n,a);switch(o){case Lh:case Mh:case Bh:case Th:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(0===n.avail_out||o===Dh))if("string"===this.options.to){let e=Id(n.output,n.next_out),t=n.next_out-e,r=$d(n.output,e);n.next_out=t,n.avail_out=i-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(o!==Fh||0!==s){if(o===Dh)return o=kh.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},Rh.prototype.onData=function(e){this.chunks.push(e)},Rh.prototype.onEnd=function(e){e===Fh&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ld(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var $h,Ih,jh={exports:{}},Ph={exports:{}};$h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ih={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Ih.rotl(e,8)|4278255360&Ih.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,i=0;n>>5]|=e[n]<<24-i%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-r)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],n=0,i=0;n>>6-2*i);return t}},Ph.exports=Ih;var zh={utf8:{stringToBytes:function(e){return zh.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(zh.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p>>0,u=u+v>>>0,d=d+y>>>0,h=h+w>>>0}return e.endian([l,u,d,h])};r._ff=function(e,t,n,i,r,o,a){var s=e+(t&n|~t&i)+(r>>>0)+a;return(s<>>32-o)+t},r._gg=function(e,t,n,i,r,o,a){var s=e+(t&i|n&~i)+(r>>>0)+a;return(s<>>32-o)+t},r._hh=function(e,t,n,i,r,o,a){var s=e+(t^n^i)+(r>>>0)+a;return(s<>>32-o)+t},r._ii=function(e,t,n,i,r,o,a){var s=e+(n^(t|~i))+(r>>>0)+a;return(s<>>32-o)+t},r._blocksize=16,r._digestsize=16,jh.exports=function(t,n){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(r(t,n));return n&&n.asBytes?o:n&&n.asString?i.bytesToString(o):e.bytesToHex(o)}}();var Vh,Gh,qh=jh.exports;(Gh=Vh||(Vh={})).UP="up",Gh.DOWN="down",Gh.NORTH="north",Gh.EAST="east",Gh.SOUTH="south",Gh.WEST="west";const Kh={[Vh.UP]:[0,1,0],[Vh.DOWN]:[0,-1,0],[Vh.NORTH]:[0,0,-1],[Vh.EAST]:[1,0,0],[Vh.SOUTH]:[0,0,1],[Vh.WEST]:[-1,0,0]};var Xh,Jh,Yh,Zh;function Qh(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function ep(e){let t=null;return()=>(null==t&&(t=e()),t)}function tp(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}(Yh=Vh||(Vh={})).ALL=[Yh.UP,Yh.DOWN,Yh.NORTH,Yh.EAST,Yh.SOUTH,Yh.WEST],Yh.normal=function(e){return Kh[e]},(Jh=Xh||(Xh={})).create=function(e,t,n){return[e,t,n]},Jh.ZERO=Jh.create(0,0,0),Jh.offset=function(e,t,n,i){return[e[0]+t,e[1]+n,e[2]+i]},Jh.towards=function(e,t){return Jh.offset(e,...Vh.normal(t))},Jh.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},Jh.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,n){var i;const r=null!=(i=t(e))?i:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,n(t)])))},e.compose=function(e,t,n){const i=t(e);return i?n(i):void 0},e.readEnum=function(e,t){return"string"!=typeof e?t[0]:t.includes(e)?e:t[0]}}(Zh||(Zh={}));const np=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new np(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const n=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,i=e.substring(t+1);return new np(n,i)}return new np(this.DEFAULT_NAMESPACE,e)}};let ip=np;ip.DEFAULT_NAMESPACE="minecraft",ip.SEPARATOR=":";var rp=Object.defineProperty,op=Object.defineProperties,ap=Object.getOwnPropertyDescriptors,sp=Object.getOwnPropertySymbols,cp=Object.prototype.hasOwnProperty,lp=Object.prototype.propertyIsEnumerable,up=(e,t,n)=>t in e?rp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const dp=class{constructor(e,t={}){this.properties=t,this.name="string"==typeof e?ip.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(dp.WATER)||this.is(dp.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}is(e){return this.name.equals(e.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=ip.parse(Qh(e.value,"Name","string")),n=function(e,t){try{return e()}catch(n){return t}}((()=>Qh(e.value,"Properties","compound")),{}),i=Object.keys(n).reduce(((e,t)=>{return i=((e,t)=>{for(var n in t||(t={}))cp.call(t,n)&&up(e,n,t[n]);if(sp)for(var n of sp(t))lp.call(t,n)&&up(e,n,t[n]);return e})({},e),r={[t]:Qh(n,t,"string")},op(i,ap(r));var i,r}),{});return new dp(t,i)}static fromJson(e){var t,n;const i=null!=(t=Zh.readObject(e))?t:{},r=ip.parse(null!=(n=Zh.readString(i.Name))?n:dp.STONE.name.toString()),o=Zh.readMap(i.Properties,(e=>{var t;return null!=(t=Zh.readString(e))?t:""}));return new dp(r,o)}};let hp=dp;hp.AIR=new dp(ip.create("air")),hp.STONE=new dp(ip.create("stone")),hp.WATER=new dp(ip.create("water"),{level:"0"}),hp.LAVA=new dp(ip.create("lava"),{level:"0"});const pp=class{constructor(e){this.minY=e,this.storage=Array(pp.SIZE).fill(0),this.palette=[hp.AIR]}get minBlockY(){return this.minY<<4}index(e,t,n){return(e<<8)+(t<<4)+n}getBlockState(e,t,n){var i;const r=this.storage[this.index(e,t,n)];return null!=(i=this.palette[r])?i:hp.AIR}setBlockState(e,t,n,i){let r=this.palette.findIndex((e=>e.equals(i)));-1===r&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(e,t,n)]=r}};let mp=pp;mp.WIDTH=16,mp.SIZE=pp.WIDTH*pp.WIDTH*pp.WIDTH;class fp{constructor(e,t,n){this.minY=e,this.height=t,this.pos=n,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[n,i,r]=e,o=this.sections[this.getSectionIndex(i)];return null!=(t=null==o?void 0:o.getBlockState(15&n,15&i,15&r))?t:hp.AIR}setBlockState(e,t){const[n,i,r]=e,o=this.getSectionIndex(i);let a=this.sections[o];if(null===a){if(t.equals(hp.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&n,15&i,15&r,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new mp(this.minSection+e)),this.sections[e]}}var gp,_p;!function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(gp||(gp={})),function(e){function t(e){return{value:()=>e,key:()=>{}}}function n(e,t){return{value:()=>e.getOrThrow(t),key:()=>t}}e.parser=function(e,i){return r=>"string"==typeof r?n(e,ip.parse(r)):t(i(r))},e.direct=t,e.reference=n}(_p||(_p={}));const bp=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,n){return this.storage.set(e.toString(),t),n&&this.builtin.set(e.toString(),t),_p.reference(this,e)}keys(){return[...this.storage.keys()].map((e=>ip.parse(e)))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(void 0===t)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new bp(this.key,this.parser)}};let vp=bp;function yp(e){return e*e}function wp(e,t,n){return Math.max(t,Math.min(n,e))}function xp(e,t,n){return t+e*(n-t)}function Ap(e,t,n,i,r,o){return xp(t,xp(e,n,i),xp(e,r,o))}function Np(e,t,n){return 0===e?t():1===e?n():t()+e*(n()-t())}function kp(e,t,n,i,r,o){return Np(t,(()=>Np(e,n,i)),(()=>Np(e,r,o)))}function Cp(e,t,n){return n<0?e:n>1?t:xp(n,e,t)}function Ep(e,t,n){return(e-t)/(n-t)}function Sp(e){return e*e*e*(e*(6*e-15)+10)}function Op(e,t,n,i,r){return xp(Ep(e,t,n),i,r)}function Fp(e,t,n,i,r){return Cp(i,r,Ep(e,t,n))}function Dp(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function Bp(e,t,n,i,r,o,a,s){return BigInt(e)<{var t;return null!=(t=Zh.readObject(e))?t:{}})))?a:[];if(0===d.length)return new t(0);for(const t of d){const n=null!=(s=Zh.readNumber(t.location))?s:0,i=e(t.value,r),o=null!=(c=Zh.readNumber(t.derivative))?c:0;u.addPoint(n,i,o)}return u};class t{constructor(e){this.value=e}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class n{constructor(e,t=[],n=[],i=[]){this.coordinate=e,this.locations=t,this.values=n,this.derivatives=i}compute(e){const t=this.coordinate.compute(e),n=function(e,t,n){let i=t-e;for(;i>0;){const t=Math.floor(i/2),r=e+t;n(r)?i=t:(e=r+1,i-=t+1)}return e}(0,this.locations.length,(e=>te.min())))}max(){return Math.max(...this.values.map((e=>e.max())))}mapAll(e){return new n(e(this.coordinate),this.locations,this.values.map((t=>t.mapAll(e))),this.derivatives)}addPoint(t,n,i=0){return this.locations.push(t),this.values.push("number"==typeof n?new e.Constant(n):n),this.derivatives.push(i),this}}e.MultiPoint=n}(Lp||(Lp={}));const Mp=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Mp(this.nextLong())}forkPositional(){return new Rp(this.nextLong())}setSeed(e){this.seed=e^Mp.MULTIPLIER&Mp.MODULUS_MASK}advance(){this.seed=this.seed*Mp.MULTIPLIER+Mp.INCREMENT&Mp.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Mp.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,n;for(;(t=this.next(31))-(n=t%e)+(e-1)<0;);return n}nextLong(){return(BigInt(this.next(32))<>$p.BIGINT_30)*$p.STAFFORD_1&$p.MAX_ULONG)^e>>$p.BIGINT_27)*$p.STAFFORD_2&$p.MAX_ULONG)^e>>$p.BIGINT_31)&$p.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=$p.POW2_60);const t=e^$p.SILVER_RATIO_64,n=t+$p.GOLDEN_RATIO_64&$p.MAX_ULONG;return[$p.mixStafford13(t),$p.mixStafford13(n)]}static rotateLeft(e,t){return e<>$p.BIGINT_64-t}setSeed(e){this.seed=$p.upgradeSeedTo128bit(e)}fork(){return new $p([this.next(),this.next()])}forkPositional(){return new jp(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const n=$p.rotateLeft(e+t&$p.MAX_ULONG,$p.BIGINT_17)+e&$p.MAX_ULONG;return t^=e,this.seed=[$p.rotateLeft(e,$p.BIGINT_49)^t^t<<$p.BIGINT_21&$p.MAX_ULONG,$p.rotateLeft(t,$p.BIGINT_28)],n}nextLong(){let e=this.next();return e>$p.POW2_63&&(e-=$p.POW2_60),e}consume(e){let t=this.seed[0],n=this.seed[1];for(let i=0;i>BigInt(64-e)}nextInt(e){let t=this.next()&$p.MAX_UINT;if(e){const n=BigInt(e);let i=t*n,r=i&$p.MAX_UINT;if(r>$p.BIGINT_32;return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*$p.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*$p.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Ip=$p;Ip.SILVER_RATIO_64=BigInt("7640891576956012809"),Ip.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Ip.FLOAT_MULTIPLIER=1/Math.pow(2,24),Ip.DOUBLE_MULTIPLIER=11102230246251565e-32,Ip.BIGINT_1=BigInt(1),Ip.BIGINT_17=BigInt(17),Ip.BIGINT_21=BigInt(21),Ip.BIGINT_27=BigInt(27),Ip.BIGINT_28=BigInt(28),Ip.BIGINT_30=BigInt(30),Ip.BIGINT_31=BigInt(31),Ip.BIGINT_32=BigInt(32),Ip.BIGINT_49=BigInt(49),Ip.BIGINT_64=BigInt(64),Ip.STAFFORD_1=BigInt("-4658895280553007687"),Ip.STAFFORD_2=BigInt("-7723592293110705685"),Ip.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),Ip.POW2_60=BigInt("0x10000000000000000"),Ip.POW2_63=BigInt("0x8000000000000000"),Ip.MAX_UINT=BigInt(4294967295);class jp{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,n){const i=Dp(e,t,n)^this.seedLo;return new Ip([i,this.seedHi])}fromHashOf(e){const t=qh(e,{asBytes:!0}),n=Bp(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),i=Bp(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Ip([n^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const Pp=class{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample2D(e,t){let n,i,r;const o=(e+t)*Pp.F2,a=Math.floor(e+o),s=e-(a-(n=(a+(i=Math.floor(t+o)))*Pp.G2));let c,l;s>(r=t-(i-n))?(c=1,l=0):(c=0,l=1);const u=s-c+Pp.G2,d=r-l+Pp.G2,h=s-1+2*Pp.G2,p=r-1+2*Pp.G2,m=255&a,f=255&i,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,n){const i=.3333333333333333*(e+t+n),r=Math.floor(e+i),o=Math.floor(t+i),a=Math.floor(n+i),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=n-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample(e,t,n,i=0,r=0){const o=e+this.xo,a=t+this.yo,s=n+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==i){const e=r>=0&&r=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(s+=i.sample(d,h,p,u,t*u)/o),o/=2}return Cp(a/512,s/512,r)/128}}var Vp;(Vp||(Vp={})).fromJson=function(e){var t,n,i,r,o;const a=null!=(t=Zh.readObject(e))?t:{};return{xzScale:null!=(n=Zh.readNumber(a.xz_scale))?n:1,yScale:null!=(i=Zh.readNumber(a.y_scale))?i:1,xzFactor:null!=(r=Zh.readNumber(a.xz_factor))?r:80,yFactor:null!=(o=Zh.readNumber(a.y_factor))?o:80}};const Gp=class{constructor(e,{firstOctave:t,amplitudes:n}){this.first=new Wp(e,t,n),this.second=new Wp(e,t,n);let i=1/0,r=-1/0;for(let a=0;a{var t;return null!=(t=Zh.readNumber(e))?t:0})))?i:[]}},(Jp||(Jp={})).rotate=function(e,t,n){let{up:i,down:r,north:o,east:a,south:s,west:c}=e;switch(n){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[i,o,r,s]=[o,r,s,i];break;case 180:[i,o,r,s]=[r,s,i,o];break;case 270:[i,o,r,s]=[s,i,o,r]}return{up:i,down:r,north:o,east:a,south:s,west:c}};const Yp=class{constructor(e,t,n){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=n}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const n=null!=(t=Zh.readObject(e))?t:{};return new Yp(Lp.fromJson(n.offset,this.EXTRACTOR),Lp.fromJson(n.factor,this.EXTRACTOR),Lp.fromJson(n.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+Yp.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(e)}static point(e,t,n){return{continents:e,erosion:t,weirdness:n,ridges:this.peaksAndValleys(n)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}};let Zp=Yp;var Qp,em,tm,nm,im,rm,om;Zp.GLOBAL_OFFSET=-.50375,Zp.EXTRACTOR=e=>{var t;const n=null!=(t=Zh.readString(e))?t:"continents";return Yp.extractor(n)},Zp.CONTINENTS=Yp.extractor("continents"),Zp.EROSION=Yp.extractor("erosion"),Zp.WEIRDNESS=Yp.extractor("weirdness"),Zp.RIDGES=Yp.extractor("ridges"),function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,n,i,r,o;const a=null!=(t=Zh.readObject(e))?t:{};return{minY:null!=(n=Zh.readInt(a.min_y))?n:0,height:null!=(i=Zh.readInt(a.height))?i:256,xzSize:null!=(r=Zh.readInt(a.size_horizontal))?r:1,ySize:null!=(o=Zh.readInt(a.size_vertical))?o:1,sampling:Vp.fromJson(a.sampling),topSlide:em.fromJson(a.top_slide),bottomSlide:em.fromJson(a.bottom_slide),terrainShaper:Zp.fromJson(a.terrain_shaper)}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))},e.applySlides=function(n,i,r){const o=Math.floor(r/t(n))-e.minCellY(n);return i=em.apply(n.topSlide,i,e.cellCountY(n)-o),em.apply(n.bottomSlide,i,o)}}(Qp||(Qp={})),(tm=em||(em={})).fromJson=function(e){var t,n,i,r;const o=null!=(t=Zh.readObject(e))?t:{};return{target:null!=(n=Zh.readNumber(o.target))?n:0,size:null!=(i=Zh.readInt(o.size))?i:0,offset:null!=(r=Zh.readInt(o.offset))?r:0}},tm.apply=function(e,t,n){if(e.size<=0)return t;const i=(n-e.offset)/e.size;return Cp(e.target,t,i)},function(e){function t(e){const t=new vp(ip.create(e));return vp.REGISTRY.register(t.key,t),t}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(nm||(nm={}));class am{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}!function(e){e.context=function(e,t,n){return{x:e,y:t,z:n}};class t extends e{constructor(e){super(),this.input=e}compute(e){return this.transform(e,this.input.compute(e))}}const n=_p.parser(nm.NOISE,Kp.fromJson);e.fromJson=function e(t,i=e){var c,_,w,E,R,$,I,j,P,z,U,W,H,V,G,q,K,X,J;if("string"==typeof t)return new o(_p.reference(nm.DENSITY_FUNCTION,ip.parse(t)));if("number"==typeof t)return new r(t);const Y=null!=(c=Zh.readObject(t))?c:{},Z=null==(_=Zh.readString(Y.type))?void 0:_.replace(/^minecraft:/,"");switch(Z){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new s;case"flat_cache":return new l(i(Y.argument));case"interpolated":return new p(i(Y.argument));case"cache_2d":return new d(i(Y.argument));case"cache_once":return new h(i(Y.argument));case"cache_all_in_cell":return new u(i(Y.argument));case"noise":return new m(null!=(w=Zh.readNumber(Y.xz_scale))?w:1,null!=(E=Zh.readNumber(Y.y_scale))?E:1,n(Y.noise));case"end_islands":return new f;case"weird_scaled_sampler":return new b(i(Y.input),Zh.readEnum(Y.rarity_value_mapper,g),n(Y.noise));case"shifted_noise":return new v(i(Y.shift_x),i(Y.shift_y),i(Y.shift_z),null!=(R=Zh.readNumber(Y.xz_scale))?R:1,null!=($=Zh.readNumber(Y.y_scale))?$:1,n(Y.noise));case"range_choice":return new y(i(Y.input),null!=(I=Zh.readNumber(Y.min_inclusive))?I:0,null!=(j=Zh.readNumber(Y.max_exclusive))?j:1,i(Y.when_in_range),i(Y.when_out_of_range));case"shift_a":return new x(n(Y.argument));case"shift_b":return new A(n(Y.argument));case"shift":return new N(n(Y.argument));case"blend_density":return new k(i(Y.argument));case"clamp":return new C(i(Y.input),null!=(P=Zh.readNumber(Y.min))?P:0,null!=(z=Zh.readNumber(Y.max))?z:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new S(Z,i(Y.argument));case"slide":return new O(i(Y.argument));case"add":case"mul":case"min":case"max":return new D(Zh.readEnum(Z,F),i(Y.argument1),i(Y.argument2));case"spline":return new B(Lp.fromJson(Y.spline,i),null!=(U=Zh.readNumber(Y.min_value))?U:0,null!=(W=Zh.readNumber(Y.max_value))?W:1);case"terrain_shaper_spline":return new M(i(Y.continentalness),i(Y.erosion),i(Y.weirdness),Zh.readEnum(Y.spline,L),null!=(H=Zh.readNumber(Y.min_value))?H:0,null!=(V=Zh.readNumber(Y.max_value))?V:1);case"constant":return new r(null!=(G=Zh.readNumber(Y.argument))?G:0);case"y_clamped_gradient":return new T(null!=(q=Zh.readInt(Y.from_y))?q:-4064,null!=(K=Zh.readInt(Y.to_y))?K:4062,null!=(X=Zh.readNumber(Y.from_value))?X:-4064,null!=(J=Zh.readNumber(Y.to_value))?J:4062)}return r.ZERO};const i=class extends e{constructor(e){super(),this.value=e}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=i;r.ZERO=new i(0),r.ONE=new i(1),e.Constant=r;class o extends e{constructor(e){super(),this.holder=e}compute(e){return this.holder.value().compute(e)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=o;class a extends e.Constant{constructor(e,t,n){super(e),this.min=t,this.max=n}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=a;class s extends e{constructor(e){super(),this.blendedNoise=null!=e?e:new Hp(Ip.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(e){return this.blendedNoise.sample(e.x,e.y,e.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=s;class c extends e{constructor(e){super(),this.wrapped=e}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class l extends c{constructor(e){super(e),this.lastValue=0}compute(t){const n=t.x>>2,i=t.z>>2;return this.lastQuartX===n&&this.lastQuartZ===i||(this.lastValue=this.wrapped.compute(e.context(n<<2,0,i<<2)),this.lastQuartX=n,this.lastQuartZ=i),this.lastValue}mapAll(e){return e.map(new l(this.wrapped.mapAll(e)))}}e.FlatCache=l;class u extends c{constructor(e){super(e)}compute(e){return this.wrapped.compute(e)}mapAll(e){return e.map(new u(this.wrapped.mapAll(e)))}}e.CacheAllInCell=u;class d extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,n=e.z;return this.lastBlockX===t&&this.lastBlockZ===n||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockZ=n),this.lastValue}mapAll(e){return e.map(new d(this.wrapped.mapAll(e)))}}e.Cache2D=d;class h extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,n=e.y,i=e.z;return this.lastBlockX===t&&this.lastBlockY===n&&this.lastBlockZ===i||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockY=n,this.lastBlockZ=i),this.lastValue}mapAll(e){return e.map(new h(this.wrapped.mapAll(e)))}}e.CacheOnce=h;class p extends c{constructor(e,t=4,n=4){super(e),this.cellWidth=t,this.cellHeight=n,this.values=new Map}compute({x:e,y:t,z:n}){const i=this.cellWidth,r=this.cellHeight,o=(e%i+i)%i/i,a=(t%r+r)%r/r,s=(n%i+i)%i/i,c=Math.floor(e/i)*i,l=Math.floor(t/r)*r,u=Math.floor(n/i)*i;return function(e,t,n,i,r,o,a,s,c,l,u){return Np(n,(()=>kp(e,t,i,r,o,a)),(()=>kp(e,t,s,c,l,u)))}(o,a,s,(()=>this.computeCorner(c,l,u)),(()=>this.computeCorner(c+i,l,u)),(()=>this.computeCorner(c,l+r,u)),(()=>this.computeCorner(c+i,l+r,u)),(()=>this.computeCorner(c,l,u+i)),(()=>this.computeCorner(c+i,l,u+i)),(()=>this.computeCorner(c,l+r,u+i)),(()=>this.computeCorner(c+i,l+r,u+i)))}computeCorner(t,n,i){return tp(this.values,`${t} ${n} ${i}`,(()=>this.wrapped.compute(e.context(t,n,i))))}mapAll(e){return e.map(new p(this.wrapped.mapAll(e)))}withCellSize(e,t){return new p(this.wrapped,e,t)}}e.Interpolated=p;class m extends e{constructor(e,t,n,i){super(),this.xzScale=e,this.yScale=t,this.noiseData=n,this.noise=i}compute(e){var t,n;return null!=(n=null==(t=this.noise)?void 0:t.sample(e.x*this.xzScale,e.y*this.yScale,e.z*this.xzScale))?n:0}maxValue(){var e,t;return null!=(t=null==(e=this.noise)?void 0:e.maxValue)?t:2}}e.Noise=m;class f extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=["type_1","type_2"],_=class extends t{constructor(e,t,n,i){super(e),this.rarityValueMapper=t,this.noiseData=n,this.noise=i,this.mapper=_.ValueMapper[this.rarityValueMapper]}transform(e,t){if(!this.noise)return 0;const n=this.mapper(t);return n*Math.abs(this.noise.sample(e.x/n,e.y/n,e.z/n))}mapAll(e){return e.map(new _(this.input.mapAll(e),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return"type_1"===this.rarityValueMapper?2:3}static rarityValueMapper1(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}static rarityValueMapper2(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}};let b=_;b.ValueMapper={type_1:_.rarityValueMapper1,type_2:_.rarityValueMapper2},e.WeirdScaledSampler=b;class v extends m{constructor(e,t,n,i,r,o,a){super(i,r,o,a),this.shiftX=e,this.shiftY=t,this.shiftZ=n}compute(e){var t,n;const i=e.x*this.xzScale+this.shiftX.compute(e),r=e.y*this.yScale+this.shiftY.compute(e),o=e.z*this.xzScale+this.shiftZ.compute(e);return null!=(n=null==(t=this.noise)?void 0:t.sample(i,r,o))?n:0}mapAll(e){return e.map(new v(this.shiftX.mapAll(e),this.shiftY.mapAll(e),this.shiftZ.mapAll(e),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=v;class y extends e{constructor(e,t,n,i,r){super(),this.input=e,this.minInclusive=t,this.maxExclusive=n,this.whenInRange=i,this.whenOutOfRange=r}compute(e){const t=this.input.compute(e);return this.minInclusive<=t&&tMath.abs(e),square:e=>e*e,cube:e=>e*e*e,half_negative:e=>e>0?e:.5*e,quarter_negative:e=>e>0?e:.25*e,squeeze:e=>{const t=wp(e,-1,1);return t/2-t*t*t/24}},e.Mapped=S;class O extends t{constructor(e,t){super(e),this.settings=t}transform(e,t){return this.settings?Qp.applySlides(this.settings,t,e.y):t}mapAll(e){return e.map(new O(this.input.mapAll(e),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=O;const F=["add","mul","min","max"];class D extends e{constructor(e,t,n,i,r){super(),this.type=e,this.argument1=t,this.argument2=n,this.min=i,this.max=r}compute(e){const t=this.argument1.compute(e);switch(this.type){case"add":return t+this.argument2.compute(e);case"mul":return 0===t?0:t*this.argument2.compute(e);case"min":return tthis.argument2.maxValue()?t:Math.max(t,this.argument2.compute(e))}}mapAll(e){return e.map(new D(this.type,this.argument1.mapAll(e),this.argument2.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.argument1.minValue(),t=this.argument2.minValue(),n=this.argument1.maxValue(),i=this.argument2.maxValue();let r,o;switch("min"!==this.type&&"max"!==this.type||!(e>=i||t>=n)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":r=e+t,o=n+i;break;case"mul":r=e>0&&t>0?e*t||0:n<0&&i<0?n*i||0:Math.min(e*i||0,t*n||0),o=e>0&&t>0?n*i||0:n<0&&i<0?e*t||0:Math.max(e*t||0,n*i||0);break;case"min":r=Math.min(e,t),o=Math.min(n,i);break;case"max":r=Math.max(e,t),o=Math.max(n,i)}return new D(this.type,this.argument1,this.argument2,r,o)}}e.Ap2=D;class B extends e{constructor(e,t,n){super(),this.spline=e,this.min=t,this.max=n}compute(e){return wp(this.spline.compute(e),this.min,this.max)}mapAll(t){return t.map(new B(this.spline.mapAll((n=>n instanceof e?n.mapAll(t):n)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=B;const L=["offset","factor","jaggedness"];class M extends e{constructor(e,t,n,i,r,o,a){super(),this.continentalness=e,this.erosion=t,this.weirdness=n,this.spline=i,this.min=r,this.max=o,this.shaper=a}compute(e){if(!this.shaper)return 0;const t=Zp.point(this.continentalness.compute(e),this.erosion.compute(e),this.weirdness.compute(e));return wp(this.shaper[this.spline](t),this.min,this.max)}mapAll(e){return e.map(new M(this.continentalness.mapAll(e),this.erosion.mapAll(e),this.weirdness.mapAll(e),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=M;class T extends e{constructor(e,t,n,i){super(),this.fromY=e,this.toY=t,this.fromValue=n,this.toValue=i}compute(e){return Fp(e.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=T}(am||(am={}));class sm{constructor(e,t){this.level=e,this.type=t}at(e){return e0))return e(t,n,i).at(n)}}},function(e){function t(e,t){return"number"==typeof e?new n(e,null!=t?t:e):e}e.target=function(e,t,n,i,o,a){return new r(e,t,n,i,o,a)},e.parameters=function(e,n,r,o,a,s,c){return new i(t(e),t(n),t(r),t(o),t(a),t(s),c)},e.param=t;class n{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,n=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(n,0)}union(e){return new n(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new n(e,e);const[i,r]=null!=(t=Zh.readArray(e,(e=>Zh.readNumber(e))))?t:[];return new n(null!=i?i:0,null!=r?r:0)}}e.Param=n;class i{constructor(e,t,n,i,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=n,this.erosion=i,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return yp(this.temperature.distance(e.temperature))+yp(this.humidity.distance(e.humidity))+yp(this.continentalness.distance(e.continentalness))+yp(this.erosion.distance(e.erosion))+yp(this.depth.distance(e.depth))+yp(this.weirdness.distance(e.weirdness))+yp(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!=(t=Zh.readObject(e))?t:{};return new i(n.fromJson(o.temperature),n.fromJson(o.humidity),n.fromJson(o.continentalness),n.fromJson(o.erosion),n.fromJson(o.depth),n.fromJson(o.weirdness),null!=(r=Zh.readInt(o.offset))?r:0)}}e.ParamPoint=i;class r{constructor(e,t,n,i,r,o){this.temperature=e,this.humidity=t,this.continentalness=n,this.erosion=i,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new a(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}},e.Sampler=class{constructor(e,t,n,i,r,o){this.temperature=e,this.humidity=t,this.continentalness=n,this.erosion=i,this.depth=r,this.weirdness=o}static fromRouter(t){return new e.Sampler(t.temperature,t.vegetation,t.continents,t.erosion,t.depth,t.ridges)}sample(t,n,i){const r=am.context(t<<2,n<<2,i<<2);return e.target(this.temperature.compute(r),this.humidity.compute(r),this.continentalness.compute(r),this.erosion.compute(r),this.depth.compute(r),this.weirdness.compute(r))}};const o=class{constructor(e){this.root=o.build(e.map((([e,t])=>new l(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let n=0;n<7;n+=1){const i=e.space[n];t+=Math.abs((i.min+i.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new c(t)}let t=1/0,n=-1,i=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),i=o.bucketize(e);let a=0;for(const e of i)a+=o.area(e.space);t>a&&(t=a,n=r)}return e=o.sort(e,n,!1),i=o.bucketize(e),i=o.sort(i,n,!0),new c(i.map((e=>o.build(e.children))))}static sort(e,t,n){return e.map((e=>{const i=e.space[t],r=(i.min+i.max)/2;return{key:n?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let n=[];const i=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)n.push(r),n.lengthnew n(1/0,-1/0)));for(const n of e)t=[...Array(7)].map(((e,i)=>t[i].union(n.space[i])));return t}search(e,t){let n=1/0,i=null;for(const r of this.children){const o=t(r,e);if(n<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);n<=s||(n=s,i=a)}return i}}e.RSubTree=c;class l extends s{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=l}(rm||(rm={}));class cm{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,n;const i=null!=(t=Zh.readObject(e))?t:{},r=ip.parse(null!=(n=Zh.readString(i.biome))?n:"minecraft:the_void");return new cm(r)}}!function(e){function t(e,t,n){return nm.NOISE.register(ip.create(e),Kp.create(t,n))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const n=new Map;e.instantiate=function(e,t){var i;const r=null==(i=t.key())?void 0:i.toString();if(!r)throw new Error("Cannot instantiate noise from direct holder");const o=e.seedKey(),a=n.get(r);if(a&&a[0]===o[0]&&a[1]===o[1])return a[2];const s=new qp(e.fromHashOf(r),t.value());return n.set(r,[o[0],o[1],s]),s}}(om||(om={}));var lm,um,dm,hm,pm,mm,fm,gm=Object.defineProperty,_m=Object.defineProperties,bm=Object.getOwnPropertyDescriptors,vm=Object.getOwnPropertySymbols,ym=Object.prototype.hasOwnProperty,wm=Object.prototype.propertyIsEnumerable,xm=(e,t,n)=>t in e?gm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Am=(e,t)=>{for(var n in t||(t={}))ym.call(t,n)&&xm(e,n,t[n]);if(vm)for(var n of vm(t))wm.call(t,n)&&xm(e,n,t[n]);return e};!function(e){const t=e=>_p.parser(nm.DENSITY_FUNCTION,am.fromJson)(e).value();e.fromJson=function(e){var n;const i=null!=(n=Zh.readObject(e))?n:{};return{barrier:t(i.barrier),fluidLevelFloodedness:t(i.fluid_level_floodedness),fluidLevelSpread:t(i.fluid_level_spread),lava:t(i.lava),temperature:t(i.temperature),vegetation:t(i.vegetation),continents:t(i.continents),erosion:t(i.erosion),depth:t(i.depth),ridges:t(i.ridges),initialDensityWithoutJaggedness:t(i.initial_density_without_jaggedness),finalDensity:t(i.final_density),veinToggle:t(i.vein_toggle),veinRidged:t(i.vein_ridged),veinGap:t(i.vein_gap)}},e.create=function(e){return Am({barrier:am.Constant.ZERO,fluidLevelFloodedness:am.Constant.ZERO,fluidLevelSpread:am.Constant.ZERO,lava:am.Constant.ZERO,temperature:am.Constant.ZERO,vegetation:am.Constant.ZERO,continents:am.Constant.ZERO,erosion:am.Constant.ZERO,depth:am.Constant.ZERO,ridges:am.Constant.ZERO,initialDensityWithoutJaggedness:am.Constant.ZERO,finalDensity:am.Constant.ZERO,veinToggle:am.Constant.ZERO,veinRidged:am.Constant.ZERO,veinGap:am.Constant.ZERO},e)},e.withSettings=function(e,t,i,r=!1){const o=(r?new Tp(i):Ip.create(i)).forkPositional(),a=new n(o,t);return s=Am({},a.mapAll(e)),c={aquiferPositionalRandomFactory:o.fromHashOf(ip.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(ip.create("ore").toString()).forkPositional()},_m(s,bm(c));var s,c};class n{constructor(e,t){this.random=e,this.settings=t,this.mapped=new Map}map(e){if(e instanceof am.HolderHolder){const t=e.holder.key();if(void 0!==t&&this.mapped.has(t.toString()))return this.mapped.get(t.toString());{const n=e.holder.value().mapAll(this);return void 0!==t&&this.mapped.set(t.toString(),n),n}}if(e instanceof am.Interpolated)return e.withCellSize(Qp.cellWidth(this.settings),Qp.cellHeight(this.settings));if(e instanceof am.Noise)return new am.Noise(e.xzScale,e.yScale,e.noiseData,om.instantiate(this.random,e.noiseData));if(e instanceof am.ShiftNoise)return e.withNewNoise(om.instantiate(this.random,e.noiseData));if(e instanceof am.ShiftedNoise){const t=om.instantiate(this.random,e.noiseData);return new am.ShiftedNoise(e.shiftX,e.shiftY,e.shiftZ,e.xzScale,e.yScale,e.noiseData,t)}return e instanceof am.WeirdScaledSampler?new am.WeirdScaledSampler(e.input,e.rarityValueMapper,e.noiseData,om.instantiate(this.random,e.noiseData)):e instanceof am.OldBlendedNoise?new am.OldBlendedNoise(new Hp(this.random.fromHashOf(ip.create("terrain").toString()),this.settings.sampling,Qp.cellWidth(this.settings),Qp.cellHeight(this.settings))):e instanceof am.Mapped||e instanceof am.Ap2?e.withMinMax():e instanceof am.TerrainShaperSpline?new am.TerrainShaperSpline(e.continentalness,e.erosion,e.weirdness,e.spline,e.min,e.max,this.settings.terrainShaper):e instanceof am.Slide?new am.Slide(e.input,this.settings):e}mapAll(e){return{barrier:e.barrier.mapAll(this),fluidLevelFloodedness:e.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:e.fluidLevelSpread.mapAll(this),lava:e.lava.mapAll(this),temperature:e.temperature.mapAll(this),vegetation:e.vegetation.mapAll(this),continents:e.continents.mapAll(this),erosion:e.erosion.mapAll(this),depth:e.depth.mapAll(this),ridges:e.ridges.mapAll(this),initialDensityWithoutJaggedness:e.initialDensityWithoutJaggedness.mapAll(this),finalDensity:e.finalDensity.mapAll(this),veinToggle:e.veinToggle.mapAll(this),veinRidged:e.veinRidged.mapAll(this),veinGap:e.veinGap.mapAll(this)}}}e.Visitor=n,e.computePreliminarySurfaceLevelScanning=function(e,t,n,i){const r=Qp.minCellY(e)+Qp.cellCountY(e),o=Qp.minCellY(e),a=Qp.cellHeight(e);for(let s=r;s>=o;s-=1){const r=s*a,o=wp(t.compute(am.context(n,r,i)),-64,64);if(Qp.applySlides(e,o,r)>=.390625)return r}return Number.MAX_SAFE_INTEGER}}(lm||(lm={}));class Nm{constructor(e,t,n,i,r,o,a,s,c){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=n,this.router=i,this.minX=r,this.minZ=o,this.settings=a,this.preliminarySurfaceLevel=new Map,this.cellWidth=Qp.cellWidth(a),this.cellHeight=Qp.cellHeight(a),this.firstCellX=Math.floor(r/this.cellWidth),this.firstCellZ=Math.floor(o/this.cellWidth),this.firstNoiseX=r>>2,this.firstNoiseZ=o>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=im.createDisabled(c);const l=this.router.finalDensity;this.materialRule=um.fromList([e=>this.aquifer.compute(e,l.compute(e))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,n){return this.materialRule({x:e,y:t,z:n})}getPreliminarySurfaceLevel(e,t){return tp(this.preliminarySurfaceLevel,gp.asLong(e,t),(()=>lm.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2)))}getAquifer(){return this.aquifer}}(um||(um={})).fromList=function(e){return t=>{for(const n of e){const e=n(t);if(e)return e}}},(dm||(dm={})).fromJson=function(e){var t,n,i,r;const o=null!=(t=Zh.readObject(e))?t:{};return void 0!==o.absolute?(s=null!=(n=Zh.readNumber(o.absolute))?n:0,()=>s):void 0!==o.above_bottom?(a=null!=(i=Zh.readNumber(o.above_bottom))?i:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!=(r=Zh.readNumber(o.below_top))?r:0):()=>0;var a,s},(hm||(hm={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class km{constructor(e,t,n){this.rule=e,this.defaultBlock=t,this.random=Ip.create(n).forkPositional(),this.surfaceNoise=om.instantiate(this.random,om.SURFACE),this.surfaceSecondaryNoise=om.instantiate(this.random,om.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,n,i){const r=gp.minBlockX(e.pos),o=gp.minBlockZ(e.pos),a=new Cm(this,e,t,n,i),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let n=0;n<1;n+=1){const i=o+n;a.updateXZ(t,i);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let n=e.maxY;n>=e.minY;n-=1){const o=Xh.create(t,n,i),u=e.getBlockState(o);if(u.equals(hp.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=n+1);continue}if(l>=n){l=Number.MIN_SAFE_INTEGER;for(let r=n-1;r>=e.minY;r-=1){const n=e.getBlockState(Xh.create(t,r,i));if(n.equals(hp.AIR)||n.isFluid()){l=r+1;break}}}r+=1;const d=n-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,n);const h=s(t,n,i);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return tp(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class Cm{constructor(e,t,n,i,r){this.system=e,this.chunk=t,this.noiseChunk=n,this.context=i,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=ep((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=ep((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,n,i){this.blockY=i,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=n,this.biome=ep((()=>this.getBiome(Xh.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const n=e>>4,i=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(n<<4,i<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(n+1<<4,i<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(n<<4,i+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(n+1<<4,i+1<<4);return Math.floor(Ap((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function n(e){return t=>{const n=e.map((e=>e(t)));return(e,t,i)=>{for(const r of n){const n=r(e,t,i);if(n)return n}}}}function i(e,t){return n=>(i,r,o)=>{if(e(n))return t(n)(i,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!=(o=Zh.readObject(r))?o:{};switch(null==(a=Zh.readString(c.type))?void 0:a.replace(/^minecraft:/,"")){case"block":return t(hp.fromJson(c.result_state));case"sequence":return n(null!=(s=Zh.readArray(c.sequence,e.fromJson))?s:[]);case"condition":return i(mm.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i}(pm||(pm={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function n(e){return t=>!e(t)}function i(e,t,n,i){return r=>{const o=i?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===n?0:Op(r.surfaceSecondary(),-1,1,0,n);return o<=1+e+a+s}}function r(e,t,n){return i=>{const r=t(i.context),o=n(i.context);if(i.blockY<=r)return!0;if(i.blockY>=o)return!1;const a=i.system.getRandom(e),s=Op(i.blockY,r,o,1,0);return a.nextFloat(){if(i.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=n?i.stoneDepthAbove:0;return i.blockY+r>=i.waterHeight+e+i.surfaceDepth*t}}function a(e,t,n){return i=>{const r=n?i.stoneDepthAbove:0;return i.blockY+r>=e(i.context)+i.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!=(c=Zh.readObject(s))?c:{};switch(null==(l=Zh.readString(y.type))?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!=(u=Zh.readArray(y.biome_is,(e=>{var t;return null!=(t=Zh.readString(e))?t:""})))?u:[]);case"not":return n(e.fromJson(y.invert));case"stone_depth":return i(null!=(d=Zh.readInt(y.offset))?d:0,null!=(h=Zh.readBoolean(y.add_surface_depth))&&h,null!=(p=Zh.readInt(y.secondary_depth_range))?p:0,"ceiling"===Zh.readString(y.surface_type));case"vertical_gradient":return r(null!=(m=Zh.readString(y.random_name))?m:"",dm.fromJson(y.true_at_and_below),dm.fromJson(y.false_at_and_above));case"water":return o(null!=(f=Zh.readInt(y.offset))?f:0,null!=(g=Zh.readInt(y.surface_depth_multiplier))?g:0,null!=(_=Zh.readBoolean(y.add_surface_depth))&&_);case"y_above":return a(dm.fromJson(y.anchor),null!=(b=Zh.readInt(y.surface_depth_multiplier))?b:0,null!=(v=Zh.readBoolean(y.add_surface_depth))&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=n,e.stoneDepth=i,e.verticalGradient=r,e.water=o,e.yAbove=a}(mm||(mm={}));class Em{constructor(e,t,n){this.biomeSource=t,this.settings=n,this.router=lm.withSettings(n.noiseRouter,n.noise,e,n.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new km(n.surfaceRule,n.defaultBlock,e);const i=new sm(-54,hp.LAVA),r=new sm(n.seaLevel,n.defaultFluid);this.globalFluidPicker=(e,t,o)=>t=0;s-=1)for(let l=a-1;l>=0;l-=1){const m=(c+s)*a+l,f=15&m,g=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==g&&(r=e.getOrCreateSection(g));for(let e=0;et))}getNoiseChunk(e){return tp(this.noiseChunkCache,gp.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),i=Qp.cellWidth(this.settings.noise),r=Qp.cellHeight(this.settings.noise),o=Math.floor(16/i),a=Math.floor(t/r),s=Math.floor((n-t)/r),c=gp.minBlockX(e.pos),l=gp.minBlockZ(e.pos);return new Nm(o,s,a,this.router,c,l,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}let Sm;(fm||(fm={})).fromJson=function(e){var t,n,i,r,o,a;const s=null!=(t=Zh.readObject(e))?t:{};return{surfaceRule:pm.fromJson(s.surface_rule),noise:Qp.fromJson(s.noise),defaultBlock:hp.fromJson(s.default_block),defaultFluid:hp.fromJson(s.default_fluid),noiseRouter:lm.fromJson(s.noise_router),seaLevel:null!=(n=Zh.readInt(s.sea_level))?n:0,disableMobGeneration:null!=(i=Zh.readBoolean(s.disable_mob_generation))&&i,aquifersEnabled:null!=(r=Zh.readBoolean(s.aquifers_enabled))&&r,oreVeinsEnabled:null!=(o=Zh.readBoolean(s.ore_veins_enabled))&&o,legacyRandomSource:null!=(a=Zh.readBoolean(s.legacy_random_source))&&a}};let Om=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Om.decode();let Fm=null;function Dm(e,t){return Om.decode((null!==Fm&&Fm.buffer===Sm.memory.buffer||(Fm=new Uint8Array(Sm.memory.buffer)),Fm).subarray(e,e+t))}const Bm=new Uint32Array(2),Lm=new BigInt64Array(Bm.buffer);let Mm=null;function Tm(){return null!==Mm&&Mm.buffer===Sm.memory.buffer||(Mm=new Int32Array(Sm.memory.buffer)),Mm}let Rm=null;function $m(){return null!==Rm&&Rm.buffer===Sm.memory.buffer||(Rm=new Float64Array(Sm.memory.buffer)),Rm}let Im=0;function jm(e,t){const n=t(8*e.length);return $m().set(e,n/8),Im=e.length,n}let Pm=null;function zm(e,t){const n=t(4*e.length);return(null!==Pm&&Pm.buffer===Sm.memory.buffer||(Pm=new Uint32Array(Sm.memory.buffer)),Pm).set(e,n/4),Im=e.length,n}function Um(e,t,n,i,r,o,a,s,c,l,u,d,h,p){var m=jm(e,Sm.__wbindgen_malloc),f=Im,g=jm(t,Sm.__wbindgen_malloc),_=Im,b=jm(n,Sm.__wbindgen_malloc),v=Im,y=jm(i,Sm.__wbindgen_malloc),w=Im,x=jm(r,Sm.__wbindgen_malloc),A=Im,N=jm(o,Sm.__wbindgen_malloc),k=Im,C=jm(a,Sm.__wbindgen_malloc),E=Im,S=jm(s,Sm.__wbindgen_malloc),O=Im,F=jm(c,Sm.__wbindgen_malloc),D=Im,B=jm(l,Sm.__wbindgen_malloc),L=Im,M=jm(u,Sm.__wbindgen_malloc),T=Im,R=jm(d,Sm.__wbindgen_malloc),$=Im,I=jm(h,Sm.__wbindgen_malloc),j=Im,P=zm(p,Sm.__wbindgen_malloc),z=Im,U=Sm.biome_parameters(m,f,g,_,b,v,y,w,x,A,N,k,C,E,S,O,F,D,B,L,M,T,R,$,I,j,P,z);return qm.__wrap(U)}function Wm(e,t,n,i,r,o,a,s,c,l,u,d,h){Lm[0]=e;const p=Bm[0],m=Bm[1];var f=jm(n,Sm.__wbindgen_malloc),g=Im,_=jm(r,Sm.__wbindgen_malloc),b=Im,v=jm(a,Sm.__wbindgen_malloc),y=Im,w=jm(c,Sm.__wbindgen_malloc),x=Im,A=jm(u,Sm.__wbindgen_malloc),N=Im,k=jm(h,Sm.__wbindgen_malloc),C=Im,E=Sm.climate_sampler(p,m,t,f,g,i,_,b,o,v,y,s,w,x,l,A,N,d,k,C);return Km.__wrap(E)}function Hm(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function Vm(e,t,n,i,r,o,a,s,c,l,u){try{const m=Sm.__wbindgen_add_to_stack_pointer(-16);Hm(e,qm),Hm(t,Km),Sm.multi_noise(m,e.ptr,t.ptr,n,i,r,o,a,s,c,l,u);var d=Tm()[m/4+0],h=Tm()[m/4+1],p=function(e,t){return Tm().subarray(e/4,e/4+t)}(d,h).slice();return Sm.__wbindgen_free(d,4*h),p}finally{Sm.__wbindgen_add_to_stack_pointer(16)}}function Gm(e,t,n,i,r,o,a,s,c,l){try{const p=Sm.__wbindgen_add_to_stack_pointer(-16);Hm(e,Km),Sm.climate_noise(p,e.ptr,t,n,i,r,o,a,s,c,l);var u=Tm()[p/4+0],d=Tm()[p/4+1],h=function(e,t){return $m().subarray(e/8,e/8+t)}(u,d).slice();return Sm.__wbindgen_free(u,8*d),h}finally{Sm.__wbindgen_add_to_stack_pointer(16)}}class qm{static __wrap(e){const t=Object.create(qm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Sm.__wbg_parameterlist_free(e)}}class Km{static __wrap(e){const t=Object.create(Km.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Sm.__wbg_sampler_free(e)}}async function Xm(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",u.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(Dm(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:i}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(n){if("application/wasm"==e.headers.get("Content-Type"))throw n;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n)}const i=await e.arrayBuffer();return await WebAssembly.instantiate(i,t)}{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}(await e,t);return Sm=n.exports,Xm.__wbindgen_wasm_module=i,Sm}var Jm,Ym="/assets/deepslate_rs_bg.4990c219.wasm";!function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"}(Jm||(Jm={}));const Zm={[Jm.UP]:[0,1,0],[Jm.DOWN]:[0,-1,0],[Jm.NORTH]:[0,0,-1],[Jm.EAST]:[1,0,0],[Jm.SOUTH]:[0,0,1],[Jm.WEST]:[-1,0,0]};var Qm,ef,tf,nf,rf,of,af,sf,cf,lf,uf,df,hf,pf,mf,ff,gf,_f,bf,vf;function yf(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return Zm[e]}}(Jm||(Jm={})),function(e){e.create=function(e,t,n){return[e,t,n]},e.offset=function(e,t,n,i){return[e[0]+t,e[1]+n,e[2]+i]},e.towards=function(t,n){return e.offset(t,...Jm.normal(n))}}(Qm||(Qm={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,n){var i;const r=null!==(i=t(e))&&void 0!==i?i:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,n(t)])))},e.compose=function(e,t,n){const i=t(e);return i?n(i):void 0}}(ef||(ef={}));class wf{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=yf(e.value,"Name","string"),n=function(e,t){try{return e()}catch(n){return t}}((()=>yf(e.value,"Properties","compound")),{}),i=Object.keys(n).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:yf(n,t,"string")})),{});return new wf(t,i)}static fromJson(e){var t,n;const i=null!==(t=ef.readObject(e))&&void 0!==t?t:{},r=null!==(n=ef.readString(i.Name))&&void 0!==n?n:"minecraft:stone",o=ef.readMap(i.Properties,(e=>{var t;return null!==(t=ef.readString(e))&&void 0!==t?t:""}));return new wf(r,o)}}function xf(e){let t=null;return()=>(null==t&&(t=e()),t)}function Af(e,t,n){const i=e.get(t);if(i)return i;const r=n(t);return e.set(t,r),r}function Nf(e){return e*e}function kf(e,t,n){return Math.max(t,Math.min(n,e))}function Cf(e,t,n){return t+e*(n-t)}function Ef(e,t,n,i,r,o){return Cf(t,Cf(e,n,i),Cf(e,r,o))}function Sf(e,t,n){return n<0?e:n>1?t:Cf(n,e,t)}function Of(e,t,n){return(e-t)/(n-t)}function Ff(e){return e*e*e*(e*(6*e-15)+10)}function Df(e,t,n,i,r){return Cf(Of(e,t,n),i,r)}function Bf(e,t,n){let i=BigInt(3129871*e)^BigInt(n)*BigInt(116129781)^BigInt(t);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function Lf(e,t,n,i,r,o,a,s){return BigInt(e)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(tf||(tf={}));class Mf{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Mf(this.nextLong())}forkPositional(){return new Tf(this.seed)}setSeed(e){this.seed=e^Mf.MULTIPLIER&Mf.MODULUS_MASK}advance(){this.seed=this.seed*Mf.MULTIPLIER+Mf.INCREMENT&Mf.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Mf.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,n;for(;(t=this.next(31))-(n=t%e)+(e-1)<0;);return n}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^Rf.SILVER_RATIO_64,n=t+Rf.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[Rf.mixStafford13(t),Rf.mixStafford13(n)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=Rf.upgradeSeedTo128bit(e)}fork(){return new Rf([this.next(),this.next()])}forkPositional(){return new $f(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const n=Rf.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[Rf.rotateLeft(e,BigInt(49))^t^t<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],n=this.seed[1];for(let i=0;i>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const n=BigInt(e);let i=t*n,r=i&BigInt(4294967295);if(r>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*Rf.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Rf.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}Rf.SILVER_RATIO_64=BigInt("7640891576956012809"),Rf.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Rf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Rf.DOUBLE_MULTIPLIER=11102230246251565e-32;class $f{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,n){const i=Bf(e,t,n)^this.seedLo;return new Rf([i,this.seedHi])}fromHashOf(e){const t=qh(e,{asBytes:!0}),n=Lf(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),i=Lf(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Rf([n^this.seedLo,i^this.seedHi])}}class If{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample2D(e,t){let n,i,r;const o=(e+t)*If.F2,a=Math.floor(e+o),s=e-(a-(n=(a+(i=Math.floor(t+o)))*If.G2));let c,l;s>(r=t-(i-n))?(c=1,l=0):(c=0,l=1);const u=s-c+If.G2,d=r-l+If.G2,h=s-1+2*If.G2,p=r-1+2*If.G2,m=255&a,f=255&i,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,n){const i=.3333333333333333*(e+t+n),r=Math.floor(e+i),o=Math.floor(t+i),a=Math.floor(n+i),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=n-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const n=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+n],this.p[t+n]=i}}sample(e,t,n,i=0,r=0){const o=e+this.xo,a=t+this.yo,s=n+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==i){const e=r>=0&&r=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(s+=i.sample(d,h,p,u,t*u)/o),o/=2}return Sf(a/512,s/512,r)/128}}(nf||(nf={})).fromJson=function(e){var t,n,i,r,o;const a=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(n=ef.readNumber(a.xz_scale))&&void 0!==n?n:1,yScale:null!==(i=ef.readNumber(a.y_scale))&&void 0!==i?i:1,xzFactor:null!==(r=ef.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=ef.readNumber(a.y_factor))&&void 0!==o?o:80}};class Uf{constructor(e,{firstOctave:t,amplitudes:n}){this.first=new Pf(e,t,n),this.second=new Pf(e,t,n);let i=1/0,r=-1/0;for(let a=0;a{var t;return null!==(t=ef.readNumber(e))&&void 0!==t?t:0})))&&void 0!==i?i:[]}}}(rf||(rf={})),function(e){e.fromJson=function(t,n){var i,r,o,a;if("number"==typeof t)return new Wf(t);const s=null!==(i=ef.readObject(t))&&void 0!==i?i:{},c=new Hf(n(s.coordinate)),l=null!==(r=ef.readArray(s.points,(e=>{var t;return null!==(t=ef.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new Wf(0);for(const u of l){const t=null!==(o=ef.readNumber(u.location))&&void 0!==o?o:0,i=e.fromJson(u.value,n),r=null!==(a=ef.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,i,r)}return c}}(of||(of={}));class Wf{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class Hf{constructor(e,t=[],n=[],i=[]){this.coordinate=e,this.locations=t,this.values=n,this.derivatives=i}apply(e){const t=this.coordinate.apply(e),n=function(e,t,n){let i=t-e;for(;i>0;){const t=Math.floor(i/2),r=e+t;n(r)?i=t:(e=r+1,i-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(af||(af={})).rotate=function(e,t,n){let{up:i,down:r,north:o,east:a,south:s,west:c}=e;switch(n){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[i,o,r,s]=[o,r,s,i];break;case 180:[i,o,r,s]=[r,s,i,o];break;case 270:[i,o,r,s]=[s,i,o,r]}return{up:i,down:r,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new n(e,null!=t?t:e):e}e.target=function(e,t,n,i,o,a){return new r(e,t,n,i,o,a)},e.parameters=function(e,n,r,o,a,s,c){return new i(t(e),t(n),t(r),t(o),t(a),t(s),c)},e.param=t;class n{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,n=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(n,0)}union(e){return new n(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new n(e,e);const[i,r]=null!==(t=ef.readArray(e,(e=>ef.readNumber(e))))&&void 0!==t?t:[];return new n(null!=i?i:0,null!=r?r:0)}}e.Param=n;class i{constructor(e,t,n,i,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=n,this.erosion=i,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return Nf(this.temperature.distance(e.temperature))+Nf(this.humidity.distance(e.humidity))+Nf(this.continentalness.distance(e.continentalness))+Nf(this.erosion.distance(e.erosion))+Nf(this.depth.distance(e.depth))+Nf(this.weirdness.distance(e.weirdness))+Nf(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new n(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return new i(n.fromJson(o.temperature),n.fromJson(o.humidity),n.fromJson(o.continentalness),n.fromJson(o.erosion),n.fromJson(o.depth),n.fromJson(o.weirdness),null!==(r=ef.readInt(o.offset))&&void 0!==r?r:0)}}e.ParamPoint=i;class r{constructor(e,t,n,i,r,o){this.temperature=e,this.humidity=t,this.continentalness=n,this.erosion=i,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let n=0;n<7;n+=1){const i=e.space[n];t+=Math.abs((i.min+i.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,n=-1,i=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),i=o.bucketize(e);let a=0;for(const e of i)a+=o.area(e.space);t>a&&(t=a,n=r)}return e=o.sort(e,n,!1),i=o.bucketize(e),i=o.sort(i,n,!0),new s(i.map((e=>o.build(e.children))))}static sort(e,t,n){return e.map((e=>{const i=e.space[t],r=(i.min+i.max)/2;return{key:n?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let n=[];const i=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)n.push(r),n.lengthnew n(1/0,-1/0)));for(const n of e)t=[...Array(7)].map(((e,i)=>t[i].union(n.space[i])));return t}search(e,t){let n=1/0,i=null;for(const r of this.children){const o=t(r,e);if(n<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);n<=s||(n=s,i=a)}return i}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(sf||(sf={}));class Vf{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,n;const i=null!==(t=ef.readObject(e))&&void 0!==t?t:{},r=null!==(n=ef.readString(i.biome))&&void 0!==n?n:"minecraft:the_void";return new Vf(r)}}class Gf{constructor(e,t,n){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=n}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const n=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return new Gf(of.fromJson(n.offset,this.EXTRACTOR),of.fromJson(n.factor,this.EXTRACTOR),of.fromJson(n.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+Gf.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,n){return{continents:e,erosion:t,weirdness:n,ridges:this.peaksAndValleys(n)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),n=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),i=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),r=new Hf(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,n).addPoint(1,i),o=new Hf(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new Hf(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Gf(r,o,a)}static getErosionFactor(e,t){const n=new Hf(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),i=new Hf(this.EROSION).addPoint(-.6,n).addPoint(-.5,new Hf(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,n).addPoint(-.25,n).addPoint(-.1,new Hf(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,n);if(t){const t=new Hf(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),n=new Hf(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);i.addPoint(.35,e).addPoint(.45,n).addPoint(.55,n).addPoint(.62,e)}else{const t=new Hf(this.RIDGES).addPoint(-.7,n).addPoint(-.15,1.37),r=new Hf(this.RIDGES).addPoint(.45,n).addPoint(.7,1.56);i.addPoint(.05,r).addPoint(.4,r).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return i}static buildErosionOffsetSpline(e,t,n,i,r,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(Cf(i,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(Cf(i,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(i,s),d=this.ridgeSpline(e-.15,.5*i,Cf(.5,.5,.5)*i,.5*i,.6*i,.5),h=this.ridgeSpline(e,r*i,t*i,.5*i,.6*i,.5),p=this.ridgeSpline(e,r,r,t,n,.5),m=this.ridgeSpline(e,r,r,t,n,.5),f=new Hf(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,n+.07),g=this.ridgeSpline(-.02,o,o,t,n,0),_=new Hf(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,h).addPoint(.2,p);return a&&_.addPoint(.4,m).addPoint(.45,f).addPoint(.55,f).addPoint(.58,m),_.addPoint(.7,g),_}static buildMountainRidgeSplineWithPoints(e,t){const n=new Hf(this.RIDGES),i=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new Hf(Gf.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}Gf.GLOBAL_OFFSET=-.50375,Gf.EXTRACTOR=e=>{var t;const n=null!==(t=ef.readString(e))&&void 0!==t?t:"continents";return Gf.extractor(n)},Gf.CONTINENTS=Gf.extractor("continents"),Gf.EROSION=Gf.extractor("erosion"),Gf.WEIRDNESS=Gf.extractor("weirdness"),Gf.RIDGES=Gf.extractor("ridges"),(cf||(cf={})).fromList=function(e){return(t,n,i,r)=>{for(const o of e){const e=o(t,n,i,r);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,n,i,r,o,a,s,c;const l=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return{minY:null!==(n=ef.readInt(l.min_y))&&void 0!==n?n:0,height:null!==(i=ef.readInt(l.height))&&void 0!==i?i:256,xzSize:null!==(r=ef.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=ef.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:nf.fromJson(l.sampling),topSlide:uf.fromJson(l.top_slide),bottomSlide:uf.fromJson(l.bottom_slide),terrainShaper:Gf.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=ef.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=ef.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=ef.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(lf||(lf={})),function(e){e.fromJson=function(e){var t,n,i,r;const o=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return{target:null!==(n=ef.readNumber(o.target))&&void 0!==n?n:0,size:null!==(i=ef.readInt(o.size))&&void 0!==i?i:0,offset:null!==(r=ef.readInt(o.offset))&&void 0!==r?r:0}},e.apply=function(e,t,n){if(e.size<=0)return t;const i=(n-e.offset)/e.size;return Sf(e.target,t,i)}}(uf||(uf={}));class qf{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=qf.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=qf.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const n=Array(t+1);for(let i=0;i>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const e=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let t=0;t<=l;t+=1){const n=this.firstNoiseZ+t;this.noiseData[u][t]=i.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=i.makeBaseNoiseFiller(this,a,s.noodleCavesEnabled)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}getPreliminarySurfaceLevel(e,t){return Af(this.preliminarySurfaceLevel,tf.asLong(e,t),(()=>{const n=e-this.firstNoiseX,i=t-this.firstNoiseZ,r=this.noiseData.length,o=n>=0&&i>=0&&ne.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((n=>n.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,n){return this.baseNoise(e,t,n)}}(df||(df={})).create=function(e,t,n){return{offset:e,factor:t,jaggedness:n}},function(e){const t=new Map;function n(e,n,i){const r=Object.assign({name:`minecraft:${e}`},rf.create(n,i));return t.set(e,r),r}e.TEMPERATURE=n("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=n("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=n("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=n("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=n("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=n("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=n("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=n("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=n("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=n("offset",-3,[1,1,1,0]),e.PILLAR=n("pillar",-7,[1,1]),e.PILLAR_RARENESS=n("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=n("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=n("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=n("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=n("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=n("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=n("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=n("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=n("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=n("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=n("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=n("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=n("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=n("cave_layer",-8,[1]),e.CAVE_CHEESE=n("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=n("noodle",-8,[1]),e.NOODLE_THICKNESS=n("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=n("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=n("noodle_ridge_b",-7,[1]),e.JAGGED=n("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=n("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=n("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(e,t){return new Uf(e.fromHashOf(t.name),t)}}(hf||(hf={}));class Xf{constructor(e,t,n,i=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(i?new Mf(n):Rf.create(n)).forkPositional();i?(this.blendedNoise=new zf(new Mf(n),e.sampling,lf.cellWidth(e),lf.cellHeight(e)),this.temperatureNoise=new Uf(new Mf(n),rf.create(-7,[1,1])),this.humidityNoise=new Uf(new Mf(n+BigInt(1)),rf.create(-7,[1,1])),this.offsetNoise=new Uf(new Mf(n+BigInt(5)),rf.create(0,[0]))):(this.blendedNoise=new zf(o.fromHashOf("minecraft:terrain"),e.sampling,lf.cellWidth(e),lf.cellHeight(e)),this.temperatureNoise=hf.instantiate(o,r?hf.TEMPERATURE_LARGE:hf.TEMPERATURE),this.humidityNoise=hf.instantiate(o,r?hf.VEGETATION_LARGE:hf.VEGETATION),this.offsetNoise=hf.instantiate(o,hf.SHIFT)),this.continentalnessNoise=hf.instantiate(o,r?hf.CONTINENTALNESS_LARGE:hf.CONTINENTALNESS),this.erosionNoise=hf.instantiate(o,r?hf.EROSION_LARGE:hf.EROSION),this.weirdnessNoise=hf.instantiate(o,hf.RIDGE),this.pillarNoise=hf.instantiate(o,hf.PILLAR),this.pillarRarenessModulator=hf.instantiate(o,hf.PILLAR_RARENESS),this.pillarThicknessModulator=hf.instantiate(o,hf.PILLAR_THICKNESS),this.spaghetti2DNoise=hf.instantiate(o,hf.SPAGHETTI_2D),this.spaghetti2DElevationModulator=hf.instantiate(o,hf.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=hf.instantiate(o,hf.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=hf.instantiate(o,hf.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=hf.instantiate(o,hf.SPAGHETTI_3D_1),this.spaghetti3DNoise2=hf.instantiate(o,hf.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=hf.instantiate(o,hf.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=hf.instantiate(o,hf.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=hf.instantiate(o,hf.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=hf.instantiate(o,hf.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=hf.instantiate(o,hf.CAVE_ENTRANCE),this.layerNoise=hf.instantiate(o,hf.CAVE_LAYER),this.cheeseNoise=hf.instantiate(o,hf.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(hf.instantiate(o,hf.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(hf.instantiate(o,hf.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(hf.instantiate(o,hf.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(hf.instantiate(o,hf.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=hf.instantiate(o,hf.JAGGED),this.shaper=e.terrainShaper,this.baseNoise=e=>e.createNoiseInterpolator(((t,n,i)=>this.calculateBlendedBaseNoise(t,n,i,e.getNoiseData(t>>2,i>>2).terrainInfo)))}yLimitedInterpolatable(e,t,n,i,r){const o=(o,a,s)=>a>n||ae.createNoiseInterpolator(o)}noiseData(e,t){const n=e+this.getOffset(e,0,t),i=t+this.getOffset(t,e,0),r=this.getContinentalness(n,i),o=this.getErosion(n,i),a=this.getWeirdness(n,i),s=this.terrainInfo(r,o,a);return pf.create(n,i,r,o,a,s)}sample(e,t,n){return this.target(e,t,n,this.noiseData(e,n))}target(e,t,n,i){const r=i.shiftedX,o=t+this.getOffset(t,n,e),a=i.shiftedZ,s=this.getTemperature(r,o,a),c=this.getHumidity(r,o,a),l=this.computeDimensionDensity(t<<2,i.terrainInfo);return sf.target(s,c,i.continentalness,i.erosion,l,i.weirdness)}terrainInfo(e,t,n){const i=Gf.point(e,t,n),r=this.shaper.offset(i),o=this.shaper.factor(i),a=this.shaper.jaggedness(i);return df.create(r,o,a)}getOffset(e,t,n){return 4*this.offsetNoise.sample(e,t,n)}getTemperature(e,t,n){return this.temperatureNoise.sample(e,t,n)}getHumidity(e,t,n){return this.humidityNoise.sample(e,t,n)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t,n){const i=this.baseNoise(e),r=n?this.noodleToggleNoise(e):()=>-1,o=n?this.noodleThicknessNoise(e):()=>0,a=n?this.noodleRidgeANoise(e):()=>0,s=n?this.noodleRidgeBNoise(e):()=>0;return(e,n,c)=>{let l=i();if(l=kf(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,n,i,r){return Sf(i,r,Of(e,t,n))}(o(),-1,1,.05,.1),t=Math.abs(1.5*a())-e,n=Math.abs(1.5*s())-e;l=Math.min(l,Math.max(t,n))}return l+=t(e,n,c),l>0?null:wf.AIR}}calculateBlendedBaseNoise(e,t,n,i){const r=this.blendedNoise.sample(e,t,n);return this.calculateBaseNoise(e,t,n,i,r,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(e,t,n,i,r,o,a){if(!this.settings.islandNoiseOverride){const o=a?this.sampleJaggedNoise(i.jaggedness,e,n):0,s=this.computeDimensionDensity(t,i),c=i.factor*(o+s);r+=c>0?4*c:c}let s=-64,c=64;if(!o&&r>=-64){const i=r-1.5625,o=this.getBigEntrances(e,t,n),a=this.getSpaghettiRoughness(e,t,n),l=this.getSpaghetti3D(e,t,n),u=Math.min(o,l+a);if(i<0)c=u;else{const o=this.getLayerizedCaverns(e,t,n);r=o>64?64:this.getCheese(e,t,n)+o+Sf(.5,0,1.28*i);const l=this.getSpaghetti2D(e,t,n);s=this.getPillars(e,t,n),c=Math.min(u,l+a)}}return r=kf(r,s,c),kf(r=this.applySlide(r,t/lf.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(e,t,n){if(0===e)return 0;const i=this.jaggedNoise.sample(1500*t,0,1500*n);return i>0?e*i:e/2*i}computeDimensionDensity(e,t){return 1-e/128+t.offset}getBigEntrances(e,t,n){return this.bigEntranceNoise.sample(.75*e,.5*t,.75*n)+.37+Sf(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,n){const i=this.spaghettiRoughnessNoise.sample(e,t,n),r=Df(this.spaghettiRoughnessModulator.sample(e,t,n),-1,1,0,1);return(.4-Math.abs(i))*r}getSpaghetti2D(e,t,n){const i=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*e,t,2*n)),r=Df(this.spaghetti2DThicknessModulator.sample(2*e,t,2*n),-1,1,.6,1.3),o=this.sampleWithRarity(this.spaghetti2DNoise,e,t,n,i),a=Math.abs(i*o)-.083*r,s=lf.minCellY(this.settings),c=Df(this.spaghetti2DElevationModulator.sample(e,0,n),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return kf(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,n){const i=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*n)),r=Df(this.spaghetti3DThicknessModulator.sample(e,t,n),-1,1,.065,.088),o=this.sampleWithRarity(this.spaghetti3DNoise1,e,t,n,i),a=Math.abs(i*o)-r,s=this.sampleWithRarity(this.spaghetti3DNoise2,e,t,n,i),c=Math.abs(i*s)-r;return kf(Math.max(a,c),-1,1)}quantizeSpaghettiRarity2D(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}quantizeSpaghettiRarity3D(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}sampleWithRarity(e,t,n,i,r){return e.sample(t/r,n/r,i/r)}getLayerizedCaverns(e,t,n){return 4*Nf(this.layerNoise.sample(e,8*t,n))}getCheese(e,t,n){return kf(this.cheeseNoise.sample(e,t/1.5,n)+.27,-1,1)}getPillars(e,t,n){const i=Df(this.pillarRarenessModulator.sample(e,t,n),-1,1,0,2),r=Df(this.pillarThicknessModulator.sample(e,t,n),-1,1,0,1.1),o=this.pillarNoise.sample(25*e,.3*t,25*n),a=Math.pow(r,3)*(2*o-i);return a<=.03?Number.MIN_SAFE_INTEGER:a}applySlide(e,t){const n=t-lf.minCellY(this.settings);return e=uf.apply(this.settings.topSlide,e,lf.cellCountY(this.settings)-n),uf.apply(this.settings.bottomSlide,e,n)}getPreliminarySurfaceLevel(e,t,n){const i=lf.minCellY(this.settings)+lf.cellCountY(this.settings),r=lf.minCellY(this.settings),o=lf.cellHeight(this.settings);for(let a=i;a>=r;a-=1){const i=a*o;if(this.calculateBaseNoise(e,i,t,n,-.703125,!0,!1)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(pf||(pf={})).create=function(e,t,n,i,r,o){return{shiftedX:e,shiftedZ:t,continentalness:n,weirdness:i,erosion:r,terrainInfo:o}},(mf||(mf={})).fromJson=function(e){var t,n,i,r;const o=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(n=ef.readNumber(o.absolute))&&void 0!==n?n:0,()=>s):void 0!==o.above_bottom?(a=null!==(i=ef.readNumber(o.above_bottom))&&void 0!==i?i:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!==(r=ef.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(ff||(ff={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class Jf{constructor(e,t,n){this.rule=e,this.defaultBlock=t,this.random=Rf.create(n).forkPositional(),this.surfaceNoise=hf.instantiate(this.random,hf.SURFACE),this.surfaceSecondaryNoise=hf.instantiate(this.random,hf.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,n,i){const r=tf.minBlockX(e.pos),o=tf.minBlockZ(e.pos),a=new Yf(this,e,t,n,i),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let n=0;n<1;n+=1){const i=o+n;a.updateXZ(t,i);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let n=e.maxY;n>=e.minY;n-=1){const o=Qm.create(t,n,i),u=e.getBlockState(o);if(u.equals(wf.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=n+1);continue}if(l>=n){l=Number.MIN_SAFE_INTEGER;for(let r=n-1;r>=e.minY;r-=1){const n=e.getBlockState(Qm.create(t,r,i));if(n.equals(wf.AIR)||n.isFluid()){l=r+1;break}}}r+=1;const d=n-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,n);const h=s(t,n,i);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return Af(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class Yf{constructor(e,t,n,i,r){this.system=e,this.chunk=t,this.noiseChunk=n,this.context=i,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=xf((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=xf((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,n,i){this.blockY=i,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=n,this.biome=xf((()=>this.getBiome(Qm.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const n=e>>4,i=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(n<<4,i<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(n+1<<4,i<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(n<<4,i+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(n+1<<4,i+1<<4);return Math.floor(Ef((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function n(e){return t=>{const n=e.map((e=>e(t)));return(e,t,i)=>{for(const r of n){const n=r(e,t,i);if(n)return n}}}}function i(e,t){return n=>(i,r,o)=>{if(e(n))return t(n)(i,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!==(o=ef.readObject(r))&&void 0!==o?o:{};switch(null===(a=ef.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(wf.fromJson(c.result_state));case"sequence":return n(null!==(s=ef.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return i(_f.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i}(gf||(gf={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function n(e){return t=>!e(t)}function i(e,t,n,i){return r=>{const o=i?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===n?0:Df(r.surfaceSecondary(),-1,1,0,n);return o<=1+e+a+s}}function r(e,t,n){return i=>{const r=t(i.context),o=n(i.context);if(i.blockY<=r)return!0;if(i.blockY>=o)return!1;const a=i.system.getRandom(e),s=Df(i.blockY,r,o,1,0);return a.nextFloat(){if(i.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=n?i.stoneDepthAbove:0;return i.blockY+r>=i.waterHeight+e+i.surfaceDepth*t}}function a(e,t,n){return i=>{const r=n?i.stoneDepthAbove:0;return i.blockY+r>=e(i.context)+i.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!==(c=ef.readObject(s))&&void 0!==c?c:{};switch(null===(l=ef.readString(y.type))||void 0===l?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!==(u=ef.readArray(y.biome_is,(e=>{var t;return null!==(t=ef.readString(e))&&void 0!==t?t:""})))&&void 0!==u?u:[]);case"not":return n(e.fromJson(y.invert));case"stone_depth":return i(null!==(d=ef.readInt(y.offset))&&void 0!==d?d:0,null!==(h=ef.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=ef.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===ef.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=ef.readString(y.random_name))&&void 0!==m?m:"",mf.fromJson(y.true_at_and_below),mf.fromJson(y.false_at_and_above));case"water":return o(null!==(f=ef.readInt(y.offset))&&void 0!==f?f:0,null!==(g=ef.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=ef.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(mf.fromJson(y.anchor),null!==(b=ef.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=ef.readBoolean(y.add_surface_depth))&&void 0!==v&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=n,e.stoneDepth=i,e.verticalGradient=r,e.water=o,e.yAbove=a}(_f||(_f={}));class Zf{constructor(e,t,n){this.biomeSource=t,this.settings=n,this.sampler=new Xf(n.noise,n.noiseCavesEnabled,e,n.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=cf.fromList([(e,t,n,i)=>e.updateNoiseAndGenerateBaseState(t,n,i)]),this.surfaceSystem=new Jf(n.surfaceRule,n.defaultBlock,e)}fill(e){var t;const n=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=lf.cellWidth(this.settings.noise),o=lf.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(n/o),c=Math.floor((i-n)/o),l=tf.minBlockX(e.pos),u=tf.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h=0;a-=1){d.selectCellYZ(a,n);for(let c=o-1;c>=0;c-=1){const p=(s+a)*o+c,m=15&p,f=e.getSectionIndex(p);e.getSectionIndex(i.minBlockY)!==f&&(i=e.getOrCreateSection(f));const g=c/o;d.updateForY(g);for(let e=0;et))}getNoiseChunk(e){return Af(this.noiseChunkCache,tf.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),i=lf.cellWidth(this.settings.noise),r=lf.cellHeight(this.settings.noise),o=Math.floor(16/i),a=Math.floor(t/r),s=Math.floor((n-t)/r),c=tf.minBlockX(e.pos),l=tf.minBlockZ(e.pos);return new Kf(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}(bf||(bf={})).fromJson=function(e){var t,n,i,r,o,a,s,c,l,u,d;const h=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return{structures:vf.fromJson(h.structures),surfaceRule:gf.fromJson(h.surface_rule),noise:lf.fromJson(h.noise),defaultBlock:wf.fromJson(h.default_block),defaultFluid:wf.fromJson(h.default_fluid),bedrockRoofPosition:null!==(n=ef.readInt(h.bedrock_roof_position))&&void 0!==n?n:0,bedrockFloorPosition:null!==(i=ef.readInt(h.bedrock_floor_position))&&void 0!==i?i:0,seaLevel:null!==(r=ef.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=ef.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=ef.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=ef.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=ef.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=ef.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=ef.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=ef.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(vf||(vf={})).fromJson=function(e){var t;const n=null!==(t=ef.readObject(e))&&void 0!==t?t:{};return{stronghold:ef.compose(n.stronghold,ef.readObject,(e=>{var t,n,i;return{distance:null!==(t=ef.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(n=ef.readInt(e.spread))&&void 0!==n?n:0,count:null!==(i=ef.readInt(e.count))&&void 0!==i?i:0}})),structures:ef.readMap(n.structures,(e=>{var t,n,i,r,o;return n=null!==(t=ef.readObject(e))&&void 0!==t?t:{},{spacing:null!==(i=ef.readInt(n.spacing))&&void 0!==i?i:0,separation:null!==(r=ef.readInt(n.separation))&&void 0!==r?r:0,salt:null!==(o=ef.readInt(n.salt))&&void 0!==o?o:0}}))}},function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,i){"string"==typeof e?(2==arguments.length&&(i=n),t.modules[e]||(t.payloads[e]=i,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,i,r=function(e,t,n){if("string"==typeof t){var i=s(e,t);if(null!=i)return n&&n(),i}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],a=0,c=t.length;a1&&c(i,"")>-1&&(n=RegExp(this.source,r.replace.call(s(this),"g","")),r.replace.call(e.slice(i.index),n,(function(){for(var e=1;ei.index&&this.lastIndex--}return i},a||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))})),ace.define("ace/lib/es5-shim",["require","exports","module"],(function(e,t,n){function i(){}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var n=h.call(arguments,1),r=function(){if(this instanceof r){var i=t.apply(this,n.concat(h.call(arguments)));return Object(i)===i?i:this}return t.apply(e,n.concat(h.call(arguments)))};return t.prototype&&(i.prototype=t.prototype,r.prototype=new i,i.prototype=null),r});var r,o,a,s,c,l=Function.prototype.call,u=Array.prototype,d=Object.prototype,h=u.slice,p=l.bind(d.toString),m=l.bind(d.hasOwnProperty);if((c=m(d,"__defineGetter__"))&&(r=l.bind(d.__defineGetter__),o=l.bind(d.__defineSetter__),a=l.bind(d.__lookupGetter__),s=l.bind(d.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,n=[];if(n.splice.apply(n,e(20)),n.splice.apply(n,e(26)),t=n.length,n.splice(5,0,"XXX"),n.length,t+1==n.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(h.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):null==e?e=0:e<0&&(e=Math.max(n+e,0)),e+ts)for(d=l;d--;)this[c+d]=this[s+d];if(o&&e===u)this.length=u,this.push.apply(this,r);else for(this.length=u+o,d=0;d>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r>>0,r=Array(i),o=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!i&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in n){r=n[o++];break}if(++o>=i)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!i&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=i-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in n){r=n[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,n[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),n=t.length>>>0;if(!n)return-1;var i=0;for(arguments.length>1&&(i=D(arguments[1])),i=i>=0?i:Math.max(0,n+i);i>>0;if(!n)return-1;var i=n-1;for(arguments.length>1&&(i=Math.min(i,D(arguments[1]))),i=i>=0?i:n-Math.abs(i);i>=0;i--)if(i in t&&e===t[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:d)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(m(e,t)){var n;if(n={enumerable:!0,configurable:!0},c){var i=e.__proto__;e.__proto__=d;var r=a(e,t),o=s(e,t);if(e.__proto__=i,r||o)return r&&(n.get=r),o&&(n.set=o),n}return n.value=e[t],n}}}(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),Object.create)||(g=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var n;if(null===e)n=g();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var i=function(){};i.prototype=e,(n=new i).__proto__=e}return void 0!==t&&Object.defineProperties(n,t),n});function y(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}if(Object.defineProperty){var w=y({}),x="undefined"==typeof document||y(document.createElement("div"));if(!w||!x)var A=Object.defineProperty}if(!Object.defineProperty||A){Object.defineProperty=function(e,t,n){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof n&&"function"!=typeof n||null===n)throw new TypeError("Property description must be an object: "+n);if(A)try{return A.call(Object,e,t,n)}catch(l){}if(m(n,"value"))if(c&&(a(e,t)||s(e,t))){var i=e.__proto__;e.__proto__=d,delete e[t],e[t]=n.value,e.__proto__=i}else e[t]=n.value;else{if(!c)throw new TypeError("getters & setters can not be defined on this javascript engine");m(n,"get")&&r(e,t,n.get),m(n,"set")&&o(e,t,n.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var n in t)m(t,n)&&Object.defineProperty(e,n,t[n]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze((function(){}))}catch(L){Object.freeze=(_=Object.freeze,function(e){return"function"==typeof e?e:_(e)})}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var n=m(e,t);return delete e[t],n}),!Object.keys){var N=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=k.length;for(var E in{toString:null})N=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var n in e)m(e,n)&&t.push(n);if(N)for(var i=0,r=C;i0||-1)*Math.floor(Math.abs(e))),e}var B=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}})),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],(function(e,t,n){e("./regexp"),e("./es5-shim")})),ace.define("ace/lib/dom",["require","exports","module"],(function(e,t,n){t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",e):document.createElement(e)},t.hasCssClass=function(e,t){return-1!==(e.className+"").split(/\s+/g).indexOf(t)},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){for(var n=e.className.split(/\s+/g);;){var i=n.indexOf(t);if(-1==i)break;n.splice(i,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){for(var n=e.className.split(/\s+/g),i=!0;;){var r=n.indexOf(t);if(-1==r)break;i=!1,n.splice(r,1)}return i&&n.push(t),e.className=n.join(" "),i},t.setCssClass=function(e,n,i){i?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n,i=0;if((t=t||document).createStyleSheet&&(n=t.styleSheets)){for(;i=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}})),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){var i=e("./keys"),r=e("./useragent"),o=null,a=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var i=function(){n.call(e,window.event)};n._wrapper=i,e.attachEvent("on"+t,i)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||r.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,i){function r(e){n&&n(e),i&&i(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,n){var i,r;t.addListener(e,"touchstart",(function(e){var t=e.touches[0];i=t.clientX,r=t.clientY})),t.addListener(e,"touchmove",(function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=i-o.clientX,e.wheelY=r-o.clientY,i=o.clientX,r=o.clientY,n(e)}}))},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",(function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),n(e)})):"onwheel"in e?t.addListener(e,"wheel",(function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}n(e)})):t.addListener(e,"DOMMouseScroll",(function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),n(e)}))},t.addMultiMouseDownListener=function(e,n,i,o){var a,s,c,l=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};function d(e){if(0!==t.getButton(e)?l=0:e.detail>1?++l>4&&(l=1):l=1,r.isIE){var d=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-s)>5;c&&!d||(l=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[l-1]||600),1==l&&(a=e.clientX,s=e.clientY)}if(e._clicks=l,i[o]("mousedown",e),l>4)l=0;else if(l>1)return i[o](u[l],e)}function h(e){l=2,c&&clearTimeout(c),c=setTimeout((function(){c=null}),n[l-1]||600),i[o]("mousedown",e),i[o](u[l],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){t.addListener(e,"mousedown",d),r.isOldIE&&t.addListener(e,"dblclick",h)}))};var s=r.isMac&&r.isOpera&&!("KeyboardEvent"in window)?function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)}:function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function c(e,t,n){var c=s(t);if(!r.isMac&&o){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(c|=8),o.altGr){if(3==(3&c))return;o.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;if(17===n&&1===l)1==o[n]&&(a=t.timeStamp);else if(18===n&&3===c&&2===l){t.timeStamp-a<50&&(o.altGr=!0)}}}if((n in i.MODIFIER_KEYS&&(n=-1),8&c&&n>=91&&n<=93&&(n=-1),!c&&13===n)&&(3===(l="location"in t?t.location:t.keyLocation)&&(e(t,c,-n),t.defaultPrevented)))return;if(r.isChromeOS&&8&c){if(e(t,c,n),t.defaultPrevented)return;c&=-9}return!!(c||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,c,n)}function l(){o=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[s(e)]},t.addCommandKeyListener=function(e,n){var i=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var a=null;i(e,"keydown",(function(e){a=e.keyCode})),i(e,"keypress",(function(e){return c(n,e,a)}))}else{var s=null;i(e,"keydown",(function(e){o[e.keyCode]=(o[e.keyCode]||0)+1;var t=c(n,e,e.keyCode);return s=e.defaultPrevented,t})),i(e,"keypress",(function(e){s&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),s=null)})),i(e,"keyup",(function(e){o[e.keyCode]=null})),o||(l(),i(window,"focus",l))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){t.nextTick=function(e,n){n=n||window;var i="zero-timeout-message-1";t.addListener(n,"message",(function r(o){o.data==i&&(t.stopPropagation(o),t.removeListener(n,"message",r),e())})),n.postMessage(i,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/lib/lang",["require","exports","module"],(function(e,t,n){t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var n="";t>0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(i,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,i=e.length;nd.length?e=e.substr(9):e.substr(0,4)==d.substr(0,4)?e=e.substr(4,e.length-d.length+1):e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e==d.charAt(0)||e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),h&&(h=!1),N&&(N=!1))},C=function(e){if(!f){var t=n.value;k(t),x()}},E=function(e,t,n){var i=e.clipboardData||window.clipboardData;if(i&&!l){var r=u||n?"Text":"text/plain";try{return t?!1!==i.setData(r,t):i.getData(r)}catch(o){if(!n)return E(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return i.preventDefault(e);E(e,a)?(r.isIOS&&(p=o,n.value="\n aa"+a+"a a\n",n.setSelectionRange(4,4+a.length),h={value:a}),o?t.onCut():t.onCopy(),r.isIOS||i.preventDefault(e)):(h=!0,n.value=a,n.select(),setTimeout((function(){h=!1,x(),w(),o?t.onCut():t.onCopy()})))};i.addCommandKeyListener(n,t.onCommandKey.bind(t)),i.addListener(n,"select",(function(e){var i;0===(i=n).selectionStart&&i.selectionEnd===i.value.length?(t.selectAll(),w()):A&&w(t.selection.isEmpty())})),i.addListener(n,"input",C),i.addListener(n,"cut",(function(e){S(e,!0)})),i.addListener(n,"copy",(function(e){S(e,!1)})),i.addListener(n,"paste",(function(e){var o=E(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),i.preventDefault(e)):(n.value="",m=!0)}));var O,F=function(){if(f&&t.onCompositionUpdate&&!t.$readOnly){var e=n.value.replace(/\x01/g,"");if(f.lastValue!==e&&(t.onCompositionUpdate(e),f.lastValue&&t.undo(),f.canUndo&&(f.lastValue=e),f.lastValue)){var i=t.selection.getRange();t.insert(f.lastValue),t.session.markUndoGroup(),f.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},D=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=f;f=!1;var o=setTimeout((function(){o=null;var e=n.value.replace(/\x01/g,"");f||(e==i.lastValue?x():!i.lastValue&&e&&(x(),k(e)))}));A=function(e){return o&&clearTimeout(o),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",D),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&C()}},B=a.delayedCall(F,50);function L(){clearTimeout(O),O=setTimeout((function(){g&&(n.style.cssText=g,g=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}i.addListener(n,"compositionstart",(function(e){f||!t.onCompositionStart||t.$readOnly||((f={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(F,0),t.on("mousedown",D),f.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?i.addListener(n,"text",(function(){B.schedule()})):(i.addListener(n,"keyup",(function(){B.schedule()})),i.addListener(n,"keydown",(function(){B.schedule()}))),i.addListener(n,"compositionend",D),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){N=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){g||(g=n.style.cssText),n.style.cssText=(a?"z-index:100000;":"")+"height:"+n.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-n.clientHeight-2,h=function(e){n.style.left=e.clientX-u-2+"px",n.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&i.capture(t.container,h,L))},this.onContextMenuClose=L;var M=function(e){t.textInput.onContextMenu(e),L()};if(i.addListener(n,"mouseup",M),i.addListener(n,"mousedown",(function(e){e.preventDefault(),L()})),i.addListener(t.renderer.scroller,"contextmenu",M),i.addListener(n,"contextmenu",M),r.isIOS){var T=null,R=!1;e.addEventListener("keydown",(function(e){T&&clearTimeout(T),R=!0})),e.addEventListener("keyup",(function(e){T=setTimeout((function(){R=!1}),100)}));var $=function(e){if(document.activeElement===n&&!R){if(p)return setTimeout((function(){p=!1}),100);var i=n.selectionStart,r=n.selectionEnd;if(n.setSelectionRange(4,5),i==r)switch(i){case 0:t.onCommandKey(null,0,s.up);break;case 1:t.onCommandKey(null,0,s.home);break;case 2:t.onCommandKey(null,c.option,s.left);break;case 4:t.onCommandKey(null,0,s.left);break;case 5:t.onCommandKey(null,0,s.right);break;case 7:t.onCommandKey(null,c.option,s.right);break;case 8:t.onCommandKey(null,0,s.end);break;case 9:t.onCommandKey(null,0,s.down)}else{switch(r){case 6:t.onCommandKey(null,c.shift,s.right);break;case 7:t.onCommandKey(null,c.shift|c.option,s.right);break;case 8:t.onCommandKey(null,c.shift,s.end);break;case 9:t.onCommandKey(null,c.shift,s.down)}switch(i){case 0:t.onCommandKey(null,c.shift,s.up);break;case 1:t.onCommandKey(null,c.shift,s.home);break;case 2:t.onCommandKey(null,c.shift|c.option,s.left);break;case 3:t.onCommandKey(null,c.shift,s.left)}}}};document.addEventListener("selectionchange",$),t.on("destroy",(function(){document.removeEventListener("selectionchange",$)}))}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],(function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=r.isChrome<18,c=r.isIE,l=e("./textinput_ios").TextInput;t.TextInput=function(e,t){if(r.isIOS)return l.call(this,e,t);var n=o.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var u="\u2028\u2028",d=!1,h=!1,p=!1,m="",f=!0;try{var g=document.activeElement===n}catch(R){}i.addListener(n,"blur",(function(e){t.onBlur(e),g=!1})),i.addListener(n,"focus",(function(e){g=!0,t.onFocus(e),v()})),this.focus=function(){if(m)return n.focus();var e=n.style.top;n.style.position="fixed",n.style.top="0px",n.focus(),setTimeout((function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)}),0)},this.blur=function(){n.blur()},this.isFocused=function(){return g};var _=a.delayedCall((function(){g&&v(f)})),b=a.delayedCall((function(){p||(n.value=u,g&&v())}));function v(e){if(!p){if(p=!0,w)var t=0,i=e?0:n.value.length-1;else t=e?2:1,i=2;try{n.setSelectionRange(t,i)}catch(R){}p=!1}}function y(){p||(n.value=u,r.isWebKit&&b.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=f&&(f=!f,_.schedule())})),y(),g&&t.onFocus();var w=null;this.setInputHandler=function(e){w=e},this.getInputHandler=function(){return w};var x=!1,A=function(e){w&&(e=w(e),w=null),h?(v(),e&&t.onPaste(e),h=!1):e==u.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==u?e=e.substr(2):e.charAt(0)==u.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},N=function(e){if(!p){var t=n.value;A(t),y()}},k=function(e,t,n){var i=e.clipboardData||window.clipboardData;if(i&&!s){var r=c||n?"Text":"text/plain";try{return t?!1!==i.setData(r,t):i.getData(r)}catch(o){if(!n)return k(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return i.preventDefault(e);k(e,o)?(r?t.onCut():t.onCopy(),i.preventDefault(e)):(d=!0,n.value=o,n.select(),setTimeout((function(){d=!1,y(),v(),r?t.onCut():t.onCopy()})))},E=function(e){C(e,!0)},S=function(e){C(e,!1)},O=function(e){var o=k(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(v),i.preventDefault(e)):(n.value="",h=!0)};i.addCommandKeyListener(n,t.onCommandKey.bind(t)),i.addListener(n,"select",(function(e){var i;d?d=!1:0===(i=n).selectionStart&&i.selectionEnd===i.value.length?(t.selectAll(),v()):w&&v(t.selection.isEmpty())})),i.addListener(n,"input",N),i.addListener(n,"cut",E),i.addListener(n,"copy",S),i.addListener(n,"paste",O),"oncut"in n&&"oncopy"in n&&"onpaste"in n||i.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:S(e);break;case 86:O(e);break;case 88:E(e)}}));var F,D=function(){if(p&&t.onCompositionUpdate&&!t.$readOnly){var e=n.value.replace(/\u2028/g,"");if(p.lastValue!==e&&(t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e),p.lastValue)){var i=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},B=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=p;p=!1;var o=setTimeout((function(){o=null;var e=n.value.replace(/\u2028/g,"");p||(e==i.lastValue?y():!i.lastValue&&e&&(y(),A(e)))}));w=function(e){return o&&clearTimeout(o),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",B),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&N()}},L=a.delayedCall(D,50);function M(){clearTimeout(F),F=setTimeout((function(){m&&(n.style.cssText=m,m=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}i.addListener(n,"compositionstart",(function(e){p||!t.onCompositionStart||t.$readOnly||((p={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(D,0),t.on("mousedown",B),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?i.addListener(n,"text",(function(){L.schedule()})):(i.addListener(n,"keyup",(function(){L.schedule()})),i.addListener(n,"keydown",(function(){L.schedule()}))),i.addListener(n,"compositionend",B),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){x=!0,v(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){m||(m=n.style.cssText),n.style.cssText=(a?"z-index:100000;":"")+"height:"+n.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-n.clientHeight-2,h=function(e){n.style.left=e.clientX-u-2+"px",n.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(F),r.isWin&&i.capture(t.container,h,M))},this.onContextMenuClose=M;var T=function(e){t.textInput.onContextMenu(e),M()};i.addListener(n,"mouseup",T),i.addListener(n,"mousedown",(function(e){e.preventDefault(),M()})),i.addListener(t.renderer.scroller,"contextmenu",T),i.addListener(n,"contextmenu",T)}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){e("../lib/dom"),e("../lib/event");var i=e("../lib/useragent");function r(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else var n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(0!==o){var a=r.getSelectionRange().isEmpty();return r.$blockScrolling++,(a||1==o)&&r.selection.moveToPosition(n),r.$blockScrolling--,void(2==o&&(r.textInput.onContextMenu(e.domEvent),i.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||r.isFocused()||(r.focus(),!this.$focusTimout||this.$clickSelection||r.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var i=this.$clickSelection.comparePoint(n);if(-1==i)e=this.$clickSelection.end;else if(1==i)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,n);n=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,i=n.renderer.screenToTextCoordinates(this.x,this.y),r=n.selection[e](i.row,i.column);if(n.$blockScrolling++,this.$clickSelection){var a=this.$clickSelection.comparePoint(r.start),s=this.$clickSelection.comparePoint(r.end);if(-1==a&&s<=0)t=this.$clickSelection.end,r.end.row==i.row&&r.end.column==i.column||(i=r.start);else if(1==s&&a>=0)t=this.$clickSelection.start,r.start.row==i.row&&r.start.column==i.column||(i=r.end);else if(-1==a&&1==s)i=r.end,t=r.start;else{var c=o(this.$clickSelection,i);i=c.cursor,t=c.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(i),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e,t,n,i,r=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,i=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(i-t,2))),o=Date.now();(r>0||o-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,i=n.session.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var i=n.getSelectionRange();i.isMultiLine()&&i.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(i.start.row),this.$clickSelection.end=n.selection.getLineRange(i.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,i=e.domEvent.timeStamp,r=i-n.t,o=e.wheelX/r,a=e.wheelY/r;r<250&&(o=(o+n.vx)/2,a=(a+n.vy)/2);var s=Math.abs(o/a),c=!1;if(s>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(c=!0),s<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(c=!0),c)n.allowed=i;else if(i-n.allowed<250){Math.abs(o)<=1.1*Math.abs(n.vx)&&Math.abs(a)<=1.1*Math.abs(n.vy)?(c=!0,n.allowed=i):n.allowed=0}return n.t=i,n.vx=o,n.vy=a,c?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(r.prototype),t.DefaultHandlers=r})),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,n){e("./lib/oop");var i=e("./lib/dom");function r(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(r.prototype),t.Tooltip=r})),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,n){var i=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/event"),a=e("../tooltip").Tooltip;function s(e){a.call(this,e)}r.inherits(s,a),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,i=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();(e+=15)+r>n&&(e-=e+r-n),(t+=15)+o>i&&(t-=20+o),a.prototype.setPosition.call(this,e,t)}}.call(s.prototype),t.GutterHandler=function(e){var t,n,r,a=e.editor,c=a.renderer.$gutterLayer,l=new s(a.container);function u(){t&&(t=clearTimeout(t)),r&&(l.hide(),r=null,a._signal("hideGutterTooltip",l),a.removeEventListener("mousewheel",u))}function d(e){l.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(a.isFocused()&&0==t.getButton()&&"foldWidgets"!=c.getRegion(t)){var n=t.getDocumentPosition().row,i=a.session.selection;if(t.getShiftKey())i.selectTo(n,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(o){var s=o.domEvent.target||o.domEvent.srcElement;if(i.hasCssClass(s,"ace_fold-widget"))return u();r&&e.$tooltipFollowsMouse&&d(o),n=o,t||(t=setTimeout((function(){t=null,n&&!e.isMousePressed?function(){var t=n.getDocumentPosition().row,i=c.$annotations[t];if(!i)return u();if(t==a.session.getLength()){var o=a.renderer.pixelToScreenCoordinates(0,n.y).row,s=n.$pos;if(o>a.session.documentToScreenRow(s.row,s.column))return u()}if(r!=i)if(r=i.text.join("
"),l.setHtml(r),l.show(),a._signal("showGutterTooltip",l),a.on("mousewheel",u),e.$tooltipFollowsMouse)d(n);else{var h=n.domEvent.target.getBoundingClientRect(),p=l.getElement().style;p.left=h.right+"px",p.top=h.bottom+"px"}}():u()}),50))})),o.addListener(a.renderer.$gutter,"mouseout",(function(e){n=null,r&&!t&&(t=setTimeout((function(){t=null,u()}),50))})),a.on("changeSession",u)}})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){i.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return i.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,n){var i=e("../lib/dom"),r=e("../lib/event"),o=e("../lib/useragent");function a(e){var t=e.editor,n=i.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",o.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var a,c,l,u,d,h,p,m,f,g,_,b=t.container,v=0;function y(){var e=h;(function(e,n){var i=Date.now(),r=!n||e.row!=n.row,o=!n||e.column!=n.column;!g||r||o?(t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,g=i,_={x:c,y:l}):s(_.x,_.y,c,l)>5?g=null:i-g>=200&&(t.renderer.scrollCursorIntoView(),g=null)})(h=t.renderer.screenToTextCoordinates(c,l),e),function(e,n){var i=Date.now(),r=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,a=t.renderer.scroller.getBoundingClientRect(),s={x:{left:c-a.left,right:a.right-c},y:{top:l-a.top,bottom:a.bottom-l}},u=Math.min(s.x.left,s.x.right),d=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};u/o<=2&&(h.column+=s.x.left=200&&t.renderer.scrollCursorIntoView(h):f=i:f=null}(h,e)}function w(){d=t.selection.toOrientedRange(),a=t.session.addMarker(d,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),y(),u=setInterval(y,20),v=0,r.addListener(document,"mousemove",N)}function x(){clearInterval(u),t.session.removeMarker(a),a=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(d),t.$blockScrolling-=1,t.isFocused()&&!m&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),d=null,h=null,v=0,f=null,g=null,r.removeListener(document,"mousemove",N)}this.onDragStart=function(e){if(this.cancelDrag||!b.draggable){var i=this;return setTimeout((function(){i.startSelect(),i.captureMouse(e)}),0),e.preventDefault()}d=t.getSelectionRange();var r=e.dataTransfer;r.effectAllowed=t.getReadOnly()?"copy":"copyMove",o.isOpera&&(t.container.appendChild(n),n.scrollTop=0),r.setDragImage&&r.setDragImage(n,0,0),o.isOpera&&t.container.removeChild(n),r.clearData(),r.setData("Text",t.session.getTextRange()),m=!0,this.setState("drag")},this.onDragEnd=function(e){if(b.draggable=!1,m=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||w(),v++,e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||(w(),v++),null!==A&&(A=null),e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragLeave=function(e){if(--v<=0&&a)return x(),p=null,r.preventDefault(e)},this.onDrop=function(e){if(h){var n=e.dataTransfer;if(m)switch(p){case"move":d=d.contains(h.row,h.column)?{start:h,end:h}:t.moveText(d,h);break;case"copy":d=t.moveText(d,h,!0)}else{var i=n.getData("Text");d={start:h,end:t.session.insert(h,i)},t.focus(),p=null}return x(),r.preventDefault(e)}},r.addListener(b,"dragstart",this.onDragStart.bind(e)),r.addListener(b,"dragend",this.onDragEnd.bind(e)),r.addListener(b,"dragenter",this.onDragEnter.bind(e)),r.addListener(b,"dragover",this.onDragOver.bind(e)),r.addListener(b,"dragleave",this.onDragLeave.bind(e)),r.addListener(b,"drop",this.onDrop.bind(e));var A=null;function N(){null==A&&(A=setTimeout((function(){null!=A&&a&&x()}),20))}function k(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function C(e){var t=["copy","copymove","all","uninitialized"],n=o.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(a){}var r="none";return n&&t.indexOf(i)>=0?r="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(i)>=0?r="move":t.indexOf(i)>=0&&(r="copy"),r}}function s(e,t,n,i){return Math.sqrt(Math.pow(n-e,2)+Math.pow(i-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),i=e.getButton();if(1===(e.domEvent.detail||1)&&0===i&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(a.prototype),t.DragdropHandler=a})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,n){var i=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=i.getDocumentHead(),r=document.createElement("script");r.src=e,n.appendChild(r),r.onload=r.onreadystatechange=function(e,n){!n&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,n){var i={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],i=this._defaultHandlers[e];if(n.length||i){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),n=n.slice();for(var a=0;a1&&(r=n[n.length-2]);var a=s[t+"Path"];return null==a?a=s.basePath:"/"==i&&(t=i=""),a&&"/"!=a.slice(-1)&&(a+="/"),a+t+i+r+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,i){var o,a;Array.isArray(n)&&(a=n[0],n=n[1]);try{o=e(n)}catch(c){}if(o&&!t.$loading[n])return i&&i(o);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(i),!(t.$loading[n].length>1)){var s=function(){e([n],(function(e){t._emit("load.module",{name:n,module:e});var i=t.$loading[n];t.$loading[n]=null,i.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return s();r.loadScript(t.moduleUrl(n,a),s)}},c(!0),t.init=c})),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],(function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,a=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,c=e("./dragdrop_handler").DragdropHandler,l=e("../config"),u=function(e){var t=this;this.editor=e,new o(this),new a(this),new c(this);var n=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},s=e.renderer.getMouseEventTarget();i.addListener(s,"click",this.onMouseEvent.bind(this,"click")),i.addListener(s,"mousemove",this.onMouseMove.bind(this,"mousemove")),i.addMultiMouseDownListener([s,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),i.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),i.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var l=e.renderer.$gutter;i.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),i.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),i.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),i.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),i.addListener(s,"mousedown",n),i.addListener(l,"mousedown",n),r.isIE&&e.renderer.scrollBarV&&(i.addListener(e.renderer.scrollBarV.element,"mousedown",n),i.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",(function(n){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var i=e.renderer.screenToTextCoordinates(n.x,n.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(i.row,i.column)?o.setCursorStyle("default"):o.setCursorStyle("")}}))};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;n&&n.length&&this.editor._emit(e,new s(t,this.editor))},this.onMouseWheel=function(e,t){var n=new s(t,this.editor);n.speed=2*this.$scrollSpeed,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new s(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var o=this,a=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new s(e,o.editor),o.$mouseMoved=!0}},c=function(e){clearInterval(u),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout((function(){c(e)}));o.$onCaptureMouseMove=a,o.releaseMouse=i.capture(this.editor.container,a,c);var u=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&i.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(u.prototype),l.defineOptions(u.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=u})),ace.define("ace/mouse/fold_handler",["require","exports","module"],(function(e,t,n){t.FoldHandler=function(e){e.on("click",(function(t){var n=t.getDocumentPosition(),i=e.session,r=i.getFoldAt(n.row,n.column,1);r&&(t.getAccelKey()?i.removeFold(r):i.expandFold(r),t.stop())})),e.on("gutterclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var n=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}})),e.on("gutterdblclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var n=t.getDocumentPosition().row,i=e.session,r=i.getParentFoldRangeData(n,!0),o=r.range||r.firstRange;if(o){n=o.start.row;var a=i.getFoldAt(n,i.getLine(n).length,1);a?i.removeFold(a):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}}))}})),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],(function(e,t,n){var i=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);-1!=n&&this.$handlers.splice(n,1),null==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==n&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map((function(n){return n.getStatusText&&n.getStatusText(t,e)||""})).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,i){for(var o,a=!1,s=this.$editor.commands,c=this.$handlers.length;c--&&!((o=this.$handlers[c].handleKeyboard(this.$data,e,t,n,i))&&o.command&&((a="null"==o.command||s.exec(o.command,this.$editor,o.args,i))&&i&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(i),a)););return a||-1!=e||(o={command:"insertstring"},a=s.exec("insertstring",this.$editor,t)),a&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),a},this.onCommandKey=function(e,t,n){var r=i.keyCodeToString(n);this.$callKeyboardHandlers(t,r,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o})),ace.define("ace/lib/bidiutil",["require","exports","module"],(function(e,t,n){var i=0,r=0,o=!1,a=!1,s=!1,c=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],u=11,d=18,h=[d,d,d,d,d,d,d,d,d,6,5,6,8,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,5,5,5,6,8,4,4,u,u,u,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,d,d,d,d,d,d,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,9,4,u,u,u,u,4,4,4,4,0,4,4,d,4,4,u,u,2,2,4,0,4,4,4,2,0,4,4,4,4,4],p=[8,8,8,8,8,8,8,8,8,8,8,d,d,d,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,u,u,u,u,u,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function m(e,t,n){if(!(r=e){for(o=d+1;o=e;)o++;for(s=d,c=o-1;s=t.length||2!=(c=n[r-1])&&3!=c||2!=(l=t[r+1])&&3!=l?4:(o&&(l=3),l==c?l:4);case 10:return 2==(c=r>0?n[r-1]:5)&&r+10&&2==n[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p=1425&&f<=2303||64286==f;if(c=t[p],g&&(1==c||7==c))return 1}return r<1||5==(c=t[r-1])?4:n[r-1];case 5:return o=!1,a=!0,i;case 6:return s=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case d:return 4}}function g(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:h[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var h=e.split(""),p=new Array(h.length),_=new Array(h.length),b=[];i=u?1:0,function(e,t,n,u){var d=i?l:c,h=null,p=null,m=null,_=0,b=null,v=-1,y=null,w=null,x=[];if(!u)for(y=0,u=[];y0)if(16==b){for(y=v;y-1){for(y=v;y=0&&8==u[A];A--)t[A]=i}}(h,b,h.length,n);for(var v=0;v7&&n[v]<13||4===n[v]||n[v]===d)?b[v]=t.ON_R:v>0&&"ل"===h[v-1]&&/\u0622|\u0623|\u0625|\u0627/.test(h[v])&&(b[v-1]=b[v]=t.R_H,v++);h[h.length-1]===t.DOT&&(b[h.length-1]=t.B);for(v=0;v=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,i=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===i;)i=n,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var n=this.session.$wrapData[e];n&&(void 0===t&&(t=this.getSplitIndex()),t>0&&n.length?(this.wrapIndent=n.indent,this.line=t0?e-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,r=0;0===e&&n[t]%2!=0&&t++;for(var o=0;o=l&&rn+a/2;){if(n+=a,r===o.length-1){a=0;break}a=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===a&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==a&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s})),ace.define("ace/range",["require","exports","module"],(function(e,t,n){var i=function(e,t,n,i){this.start={row:e,column:t},this.end={row:n,column:i}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,n=e.end,i=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(i.row,i.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(i.row,i.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?a.fromPoints(t,t):this.isBackwards()?a.fromPoints(t,e):a.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n,i="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(i);return r?(i=r.start.row,n=r.end.row):n=i,!0===t?new a(i,0,n,this.session.getLine(n).length):new a(i,0,n+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var i=e.column,r=e.column+t;return n<0&&(i=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(i,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=i)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),i=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);if(r)this.moveCursorTo(r.end.row,r.end.column);else{if(this.session.nonTokenRe.exec(i)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,i=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},this.$shortWordEndIndex=function(e){var t,n=0,i=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&i.test(t);)n++;if(n<1)for(r.lastIndex=0;(t=e[n])&&!r.test(t);)if(r.lastIndex=0,n++,i.test(t)){if(n>2){n--;break}for(;(t=e[n])&&i.test(t);)n++;if(n>2)break}}return r.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),i=n.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==n.length){var o=this.doc.getLength();do{e++,i=this.doc.getLine(e)}while(e0&&/^\s*$/.test(i));n=i.length,/\s+$/.test(i)||(i="")}var o=r.stringReverse(i),a=this.$shortWordEndIndex(o);return this.moveCursorTo(t,n-a)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n,i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(i.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(i.column),i.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=i.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var r=this.session.screenToDocumentPosition(i.row+e,i.column,n);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var i=this.session.getFoldAt(e,t,1);i&&(e=i.start.row,t=i.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var i=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(i.row,i.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return a.fromPoints(t,n)}catch(i){return a.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=a.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(s.prototype),t.Selection=s})),ace.define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,n){var i=e("./config"),r=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],i=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},a="g",s=[],c=0;c1?this.$applyToken:l.token),d>1&&(/\\\d/.test(l.regex)?u=l.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+r+1)})):(d=1,u=this.removeCapturingGroups(l.regex)),l.splitRegex||"string"==typeof l.token||s.push(l)),o[r]=c,r+=d,i.push(u),l.onMatch||(l.onMatch=null)}}i.length||(o[0]=0,i.push("$")),s.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,a)}),this),this.regExps[t]=new RegExp("("+i.join(")|(")+")|($)",a)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var i=[],r=0,o=n.length;ru){var _=e.substring(u,g-f.length);h.type==p?h.value+=_:(h.type&&l.push(h),h={type:p,value:_})}for(var b=0;br){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&n[0]!==i&&n.unshift("#tmp",i),{tokens:l,state:n.length?n:i}},this.reportError=i.reportError}).call(o.prototype),t.Tokenizer=o})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,n){var i=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var i=e[n],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new i(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,n){var i,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),c=["text","paren.rparen","punctuation.operator"],l=["text","paren.rparen","punctuation.operator","comment"],u={},d={'"':'"',"'":"'"},h=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return i=u[t];i=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,i){var r=e.end.row-e.start.row;return{text:n+t+i,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},m=function(e){this.add("braces","insertion",(function(t,n,r,o,a){var c=r.getCursorPosition(),l=o.doc.getLine(c.row);if("{"==a){h(r);var u=r.getSelectionRange(),d=o.doc.getTextRange(u);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return p(u,d,"{","}");if(m.isSaneInsertion(r,o))return/[\]\}\)]/.test(l[c.column])||r.inMultiSelectMode||e&&e.braces?(m.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==a){if(h(r),"}"==l.substring(c.column,c.column+1))if(null!==o.$findOpeningBracket("}",{column:c.column+1,row:c.row})&&m.isAutoInsertedClosing(c,l,a))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==a||"\r\n"==a){h(r);var f="";if(m.isMaybeInsertedClosing(c,l)&&(f=s.stringRepeat("}",i.maybeInsertedBrackets),m.clearMaybeInsertedClosing()),"}"===l.substring(c.column,c.column+1)){var g=o.findMatchingBracket({row:c.row,column:c.column+1},"}");if(!g)return null;var _=this.$getIndent(o.getLine(g.row))}else{if(!f)return void m.clearMaybeInsertedClosing();_=this.$getIndent(l)}var b=_+o.getTabString();return{text:"\n"+b+"\n"+_+f,selection:[1,b.length,1,b.length]}}m.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,n,r,o){var a=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==a){if(h(n),"}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;i.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,n,i,r){if("("==r){h(n);var o=n.getSelectionRange(),a=i.doc.getTextRange(o);if(""!==a&&n.getWrapBehavioursEnabled())return p(o,a,"(",")");if(m.isSaneInsertion(n,i))return m.recordAutoInsert(n,i,")"),{text:"()",selection:[1,1]}}else if(")"==r){h(n);var s=n.getCursorPosition(),c=i.doc.getLine(s.row);if(")"==c.substring(s.column,s.column+1))if(null!==i.$findOpeningBracket(")",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,n,i,r){var o=i.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o&&(h(n),")"==i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("brackets","insertion",(function(e,t,n,i,r){if("["==r){h(n);var o=n.getSelectionRange(),a=i.doc.getTextRange(o);if(""!==a&&n.getWrapBehavioursEnabled())return p(o,a,"[","]");if(m.isSaneInsertion(n,i))return m.recordAutoInsert(n,i,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){h(n);var s=n.getCursorPosition(),c=i.doc.getLine(s.row);if("]"==c.substring(s.column,s.column+1))if(null!==i.$findOpeningBracket("]",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,n,i,r){var o=i.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o&&(h(n),"]"==i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("string_dquotes","insertion",(function(e,t,n,i,r){var o=i.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;h(n);var a=r,s=n.getSelectionRange(),c=i.doc.getTextRange(s);if(!(""===c||1==c.length&&o[c])&&n.getWrapBehavioursEnabled())return p(s,c,a,a);if(!c){var l=n.getCursorPosition(),u=i.doc.getLine(l.row),m=u.substring(l.column-1,l.column),f=u.substring(l.column,l.column+1),g=i.getTokenAt(l.row,l.column),_=i.getTokenAt(l.row,l.column+1);if("\\"==m&&g&&/escape/.test(g.type))return null;var b,v=g&&/string|escape/.test(g.type),y=!_||/string|escape/.test(_.type);if(f==a)(b=v!==y)&&/string\.end/.test(_.type)&&(b=!1);else{if(v&&!y)return null;if(v&&y)return null;var w=i.$mode.tokenRe;w.lastIndex=0;var x=w.test(m);w.lastIndex=0;var A=w.test(m);if(x||A)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;b=!0}return{text:b?a+a:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,n,i,r){var o=i.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)&&(h(n),i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o))return r.end.column++,r}))};m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),i=new a(t,n.row,n.column);if(!this.$matchTokenType(i.getCurrentToken()||"text",c)){var r=new a(t,n.row,n.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",c))return!1}return i.stepForward(),i.getCurrentTokenRow()!==n.row||this.$matchTokenType(i.getCurrentToken()||"text",l)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,i.autoInsertedLineEnd[0])||(i.autoInsertedBrackets=0),i.autoInsertedRow=r.row,i.autoInsertedLineEnd=n+o.substr(r.column),i.autoInsertedBrackets++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(i.maybeInsertedBrackets=0),i.maybeInsertedRow=r.row,i.maybeInsertedLineStart=o.substr(0,r.column)+n,i.maybeInsertedLineEnd=o.substr(r.column),i.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(e,t,n){return i.autoInsertedBrackets>0&&e.row===i.autoInsertedRow&&n===i.autoInsertedLineEnd[0]&&t.substr(e.column)===i.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(e,t){return i.maybeInsertedBrackets>0&&e.row===i.maybeInsertedRow&&t.substr(e.column)===i.maybeInsertedLineEnd&&t.substr(0,e.column)==i.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){i.autoInsertedLineEnd=i.autoInsertedLineEnd.substr(1),i.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){i&&(i.maybeInsertedBrackets=0,i.maybeInsertedRow=-1)},r.inherits(m,o),t.CstyleBehaviour=m})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,n){t.packages={},function(e){var n=/\w{4}/g;for(var i in e)t.packages[i]=e[i].replace(n,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})})),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],(function(e,t,n){var i=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,a=e("../unicode"),s=e("../lib/lang"),c=e("../token_iterator").TokenIterator,l=e("../range").Range,u=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,i){var r=t.doc,o=!0,a=!0,c=1/0,l=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))f=this.lineCommentStart.map(s.escapeRegExp).join("|"),p=this.lineCommentStart[0];else f=s.escapeRegExp(this.lineCommentStart),p=this.lineCommentStart;f=new RegExp("^(\\s*)(?:"+f+") ?"),u=t.getUseSoftTabs();b=function(e,t){var n=e.match(f);if(n){var i=n[1].length,o=n[0].length;h(e,i,o)||" "!=n[0][o-1]||o--,r.removeInLine(t,i,o)}};var d=p+" ",h=(_=function(e,t){o&&!/\S/.test(e)||(h(e,c,c)?r.insertInLine({row:t,column:c},d):r.insertInLine({row:t,column:c},p))},v=function(e,t){return f.test(e)},function(e,t,n){for(var i=0;t--&&" "==e.charAt(t);)i++;if(i%l!=0)return!1;for(i=0;" "==e.charAt(n++);)i++;return l>2?i%l!=l-1:i%l==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,m=this.blockComment.end,f=new RegExp("^(\\s*)(?:"+s.escapeRegExp(p)+")"),g=new RegExp("(?:"+s.escapeRegExp(m)+")\\s*$"),_=function(e,t){v(e,t)||o&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},m),r.insertInLine({row:t,column:c},p))},b=function(e,t){var n;(n=e.match(g))&&r.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(f))&&r.removeInLine(t,n[1].length,n[0].length)},v=function(e,n){if(f.test(e))return!0;for(var i=t.getTokens(n),r=0;re.length&&(w=e.length)})),c==1/0&&(c=w,o=!1,a=!1),u&&c%l!=0&&(c=Math.floor(c/l)*l),y(a?b:_)},this.toggleBlockComment=function(e,t,n,i){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o=(f=new c(t,i.row,i.column)).getCurrentToken();t.selection;var a,s,u=t.selection.toOrientedRange();if(o&&/comment/.test(o.type)){for(var d,h;o&&/comment/.test(o.type);){if(-1!=(g=o.value.indexOf(r.start))){var p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;d=new l(p,m,p,m+r.start.length);break}o=f.stepBackward()}var f;for(o=(f=new c(t,i.row,i.column)).getCurrentToken();o&&/comment/.test(o.type);){var g;if(-1!=(g=o.value.indexOf(r.end))){p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;h=new l(p,m,p,m+r.end.length);break}o=f.stepForward()}h&&t.remove(h),d&&(t.remove(d),a=d.start.row,s=-r.start.length)}else s=r.start.length,a=n.start.row,t.insert(n.end,r.end),t.insert(n.start,r.start);u.start.row==a&&(u.start.column+=s),u.end.row==a&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var n=function(t,n,i){var r="insert"==t.action,o=(r?1:-1)*(t.end.row-t.start.row),a=(r?1:-1)*(t.end.column-t.start.column),s=t.start,c=r?s:t.end;if(e(n,s,i))return{row:n.row,column:n.column};if(e(c,n,!i))return{row:n.row+o,column:n.column+(n.row==c.row?a:0)};return{row:s.row,column:s.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(e,t,n){var i;if(i=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=i.row||this.column!=i.column){var r={row:this.row,column:this.column};this.row=i.row,this.column=i.column,this._signal("change",{old:r,value:i})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(o.prototype)})),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,n){var i=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){i.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new s(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),i=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:i,action:"insert",lines:[t]},!0),this.clonePos(i)},this.clippedPos=function(e,t){var n=this.getLength();void 0===e?e=n:e<0?e=0:e>=n&&(e=n-1,t=void 0);var i=this.getLine(e);return null==t&&(t=i.length),{row:e,column:t=Math.min(Math.max(t,0),i.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,i=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof a||(e=a.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var n=e.lines,i=n.length,r=e.start.row,o=e.start.column,a=0,s=0;;){a=s,s+=t-1;var c=n.slice(a,s);if(s>i){e.lines=c,e.start.row=r+a,e.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(r+a,o),end:this.pos(r+s,o=0),action:e.action,lines:c},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var n=this.$lines||this.getAllLines(),i=this.getNewLineCharacter().length,r=t||0,o=n.length;r20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==i&&(i=t),o<=i&&n.fireUpdateEvent(o,i)}}};(function(){i.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var i=Array(n+1);i.unshift(t,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],i=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=i.state+""?(this.states[e]=i.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=i.tokens}}).call(o.prototype),t.BackgroundTokenizer=o})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){var i=e("./lib/lang");e("./lib/oop");var r=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,n,o){if(this.regExp)for(var a=o.firstRow,s=o.lastRow,c=a;c<=s;c++){var l=this.cache[c];null==l&&((l=i.getMatchOffsets(n.getLine(c),this.regExp)).length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map((function(e){return new r(c,e.offset,c,e.offset+e.length)})),this.cache[c]=l.length?l:"");for(var u=l.length;u--;)t.drawSingleLineMarker(e,l[u].toScreenRange(n),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o})),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,n){var i=e("../range").Range;function r(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new i(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var i,r,o=0,a=this.folds,s=!0;null==t&&(t=this.end.row,n=this.end.column);for(var c=0;c0)){var c=i(e,a.start);return 0===s?t&&0!==c?-o-2:o:c>0||0===c&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var i=this.pointIndex(e.end,t,n);return i<0?i=-i-1:i++,this.ranges.splice(n,i-n,e)},this.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){for(var e,t=[],n=this.ranges,r=(n=n.sort((function(e,t){return i(e.start,t.start)})))[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.rowi)break;if(l.start.row==i&&l.start.column>=t.column&&(l.start.column==t.column&&this.$insertRight||(l.start.column+=o,l.start.row+=r)),l.end.row==i&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&sl.start.column&&l.end.column==a[s+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=r}}}if(0!=r&&s=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,i=0;for(t&&(i=n.indexOf(t)),-1==i&&(i=0);i=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,i=t-e+1,r=0;r=t){s=e?i-=t-s:i=0);break}a>=e&&(i-=s>=e?a-s:a-e+1)}return i},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var n,i=this.$foldData,a=!1;e instanceof o?n=e:(n=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var s=n.start.row,c=n.start.column,l=n.end.row,u=n.end.column;if(!(s0&&(this.removeFolds(p),p.forEach((function(e){n.addSubFold(e)})));for(var m=0;m0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var n,r;if(null==e?(n=new i(0,0,this.getLength(),0),t=!0):n="number"==typeof e?new i(e,0,e,this.getLine(e).length):"row"in e?i.fromPoints(e,e):e,r=this.getFoldsInRangeList(n),t)this.removeFolds(r);else for(var o=r;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(n);if(r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,i,r){null==i&&(i=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var o=this.doc,a="";return e.walk((function(e,t,n,s){if(!(tu)break}while(o&&c.test(o.type));o=r.stepBackward()}else o=r.getCurrentToken();return l.end.row=r.getCurrentTokenRow(),l.end.column=r.getCurrentTokenColumn()+o.value.length-2,l}},this.foldAll=function(e,t,n){null==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength();for(var r=e=e||0;r=e){r=o.end.row;try{var a=this.addFold("...",o);a&&(a.collapseChildren=n)}catch(s){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){this.$foldMode!=e&&(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),e&&"manual"!=this.$foldStyle?(this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)):this.foldWidgets=null)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};for(var i,r=e-1;r>=0;){var o=n[r];if(null==o&&(o=n[r]=this.getFoldWidget(r)),"start"==o){var a=this.getFoldWidgetRange(r);if(i||(i=a),a&&a.end.row>=e)break}r--}return{range:-1!==r&&a,firstRange:i}},this.onFoldWidgetClick=function(e,t){var n={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),i=this.getLine(e),r="end"===n?-1:1,o=this.getFoldAt(e,-1===r?0:i.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var a=this.getFoldWidgetRange(e,!0);if(a&&!a.isMultiLine()&&(o=this.getFoldAt(a.start.row,a.start.column,1))&&a.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var c=s.range.start.row+1,l=s.range.end.row;this.foldAll(c,l,t.all?1e4:0)}else t.children?(l=a?a.end.row:this.getLength(),this.foldAll(e+1,l,t.all?1e4:0)):a&&(t.all&&(a.collapseChildren=1e4),this.addFold("...",a));return a}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var i=this.getParentFoldRangeData(t,!0);if(n=i.range||i.firstRange){t=n.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var i=Array(n+1);i.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,i)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,n){var i=e("../token_iterator").TokenIterator,r=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var i=n.match(/([\(\[\{])|([\)\]\}])/);return i?i[1]?this.$findClosingBracket(i[1],e):this.$findOpeningBracket(i[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),i=!0,o=n.charAt(e.column-1),a=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(a||(o=n.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(/([\(\[\{])|([\)\]\}])/),i=!1),!a)return null;if(a[1]){if(!(s=this.$findClosingBracket(a[1],e)))return null;t=r.fromPoints(e,s),i||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s;if(!(s=this.$findOpeningBracket(a[2],e)))return null;t=r.fromPoints(s,e),i||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var r=this.$brackets[e],o=1,a=new i(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){n||(n=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn()-2,l=s.value;;){for(;c>=0;){var u=l.charAt(c);if(u==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else u==e&&(o+=1);c-=1}do{s=a.stepBackward()}while(s&&!n.test(s.type));if(null==s)break;c=(l=s.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var r=this.$brackets[e],o=1,a=new i(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){n||(n=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn();;){for(var l=s.value,u=l.length;cn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){for(var n=0,i=e.length-1;n<=i;){var r=n+i>>1,o=e[r];if(t>o)n=r+1;else{if(!(t=t);o++);return(n=i[o])?(n.index=o,n.start=r-n.value.length,n):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(i=!!n.charAt(t-1).match(this.tokenRe)),i||(i=!!n.charAt(t).match(this.tokenRe)),i)var r=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))r=/\s/;else r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&n.charAt(o).match(r));o++}for(var a=t;ae&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,i=0,r=0,o=this.$foldData[r],a=o?o.start.row:1/0,s=t.length,c=0;ca){if((c=o.end.row+1)>=s)break;a=(o=this.$foldData[r++])?o.start.row:1/0}null==n[c]&&(n[c]=this.$getStringScreenWidth(t[c])[0]),n[c]>i&&(i=n[c])}this.screenWidth=i}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=null,i=e.length-1;-1!=i;i--){var r=e[i];"doc"==r.group?(this.doc.revertDeltas(r.deltas),n=this.$getUndoSelection(r.deltas,!0,n)):r.deltas.forEach((function(e){this.addFolds(e.folds)}),this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=null,i=0;ie.end.column&&(o.start.column+=l),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=l)),a&&o.start.row>=e.end.row&&(o.start.row+=a,o.end.row+=a)}if(o.end=this.insert(o.start,i),r.length){var s=e.start,c=o.start,l=(a=c.row-s.row,c.column-s.column);this.addFolds(r.map((function(e){return(e=e.clone()).start.row==s.row&&(e.start.column+=l),e.end.row==s.row&&(e.end.column+=l),e.start.row+=a,e.end.row+=a,e})))}return o},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var i=e;i<=t;i++)this.doc.insertInLine({row:i,column:0},n)},this.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),i=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);n.start.row=r,n.end.row=r;for(var a=0;a0){var r;if((r=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;i=r-t}else{e=this.$clipRowToDocument(e);i=(t=this.$clipRowToDocument(t))-e+1}var o=new u(e,0,t,Number.MAX_VALUE),a=this.getFoldsInRange(o).map((function(e){return(e=e.clone()).start.row+=i,e.end.row+=i,e})),s=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,s),a.length&&this.addFolds(a),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var i=this.$constrainWrapLimit(e,n.min,n.max);return i!=this.$wrapLimit&&i>1&&(this.$wrapLimit=i,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,i=e.start,r=e.end,o=i.row,a=r.row,s=a-o,c=null;if(this.$updating=!0,0!=s)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(o,s);var l=this.$foldData;c=this.getFoldsInRange(e),this.removeFolds(c);var u=0;if(f=this.getFoldLine(r.row)){f.addRemoveChars(r.row,r.column,i.column-r.column),f.shiftRow(-s);var d=this.getFoldLine(o);d&&d!==f&&(d.merge(f),f=d),u=l.indexOf(f)+1}for(;u=r.row&&f.shiftRow(-s)}a=o}else{var h=Array(s);h.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,h);l=this.$foldData,u=0;if(f=this.getFoldLine(o)){var m=f.range.compareInside(i.row,i.column);0==m?(f=f.split(i.row,i.column))&&(f.shiftRow(s),f.addRemoveChars(a,0,r.column-i.column)):-1==m&&(f.addRemoveChars(o,0,r.column-i.column),f.shiftRow(s)),u=l.indexOf(f)+1}for(;u=o&&f.shiftRow(s)}}else s=Math.abs(e.start.column-e.end.column),"remove"===n&&(c=this.getFoldsInRange(e),this.removeFolds(c),s=-s),(f=this.getFoldLine(o))&&f.addRemoveChars(o,i.column,s);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,a):this.$updateRowLengthCache(o,a),c},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(n,i){var r,o,a=this.doc.getAllLines(),s=this.getTabSize(),c=this.$wrapData,l=this.$wrapLimit,u=n;for(i=Math.min(i,a.length-1);u<=i;)(o=this.getFoldLine(u,o))?(r=[],o.walk(function(n,i,o,s){var c;if(null!=n){(c=this.$getDisplayTokens(n,r.length))[0]=e;for(var l=1;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(n,i,r){if(0==n.length)return[];var o=[],a=n.length,s=0,c=0,l=this.$wrapAsCode,u=this.$indentedSoftWrap,d=i<=Math.max(2*r,8)||!1===u?0:Math.floor(i/2);function h(e){var t=n.slice(s,e),i=t.length;t.join("").replace(/12/g,(function(){i-=1})).replace(/2/g,(function(){i-=1})),o.length||(p=function(){var e=0;if(0===d)return e;if(u)for(var t=0;ti-p;){var m=s+i-p;if(n[m-1]>=10&&n[m]>=10)h(m);else if(n[m]!=e&&n[m]!=t){for(var f=Math.max(m-(i-(i>>2)),s-1);m>f&&n[m]f&&n[m]f&&9==n[m];)m--}else for(;m>f&&n[m]<10;)m--;m>f?h(++m):(2==n[m=s+i]&&m--,h(m-p))}else{for(;m!=s-1&&n[m]!=e;m--);if(m>s){h(m);continue}for(m=s+i;m39&&a<48||a>57&&a<64?r.push(9):a>=4352&&n(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(e,t,i){if(0==t)return[0,0];var r,o;for(null==t&&(t=1/0),i=i||0,o=0;o=4352&&n(r)?i+=2:i+=1,!(i>t));o++);return[i,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){s=l[u],o=this.$docRowCache[u];var h=e>l[d-1]}else h=!d;for(var p=this.getLength()-1,m=this.getNextFoldLine(o),f=m?m.start.row:1/0;s<=e&&!(s+(c=this.getRowLength(o))>e||o>=p);)s+=c,++o>f&&(o=m.end.row+1,f=(m=this.getNextFoldLine(o,m))?m.start.row:1/0),h&&(this.$docRowCache.push(o),this.$screenRowCache.push(s));if(m&&m.start.row<=o)i=this.getFoldDisplayLine(m),o=m.start.row;else{if(s+c<=e||o>p)return{row:p,column:this.getLine(p).length};i=this.getLine(o),m=null}var g=0,_=Math.floor(e-s);if(this.$useWrapMode){var b=this.$wrapData[o];b&&(r=b[_],_>0&&b.length&&(g=b.indent,a=b[_-1]||b[b.length-1],i=i.substring(a)))}return void 0!==n&&this.$bidiHandler.isBidiRow(s+_,o,_)&&(t=this.$bidiHandler.offsetToCol(n)),a+=this.$getStringScreenWidth(i,t-g)[1],this.$useWrapMode&&a>=r&&(a=r-1),m?m.idxToPosition(a):{row:o,column:a}},this.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var i,r=0,o=null;(i=this.getFoldAt(e,t,1))&&(e=i.start.row,t=i.start.column);var a,s=0,c=this.$docRowCache,l=this.$getRowCacheIndex(c,e),u=c.length;if(u&&l>=0){s=c[l],r=this.$screenRowCache[l];var d=e>c[u-1]}else d=!u;for(var h=this.getNextFoldLine(s),p=h?h.start.row:1/0;s=p){if((a=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(a,h))?h.start.row:1/0}else a=s+1;r+=this.getRowLength(s),s=a,d&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var m="";h&&s>=p?(m=this.getFoldDisplayLine(h,e,t),o=h.start.row):(m=this.getLine(e).substring(0,t),o=e);var f=0;if(this.$useWrapMode){var g=this.$wrapData[o];if(g){for(var _=0;m.length>=g[_];)r++,_++;m=m.substring(g[_-1]||0,m.length),f=_>0?g.indent:0}}return{row:r,column:f+this.$getStringScreenWidth(m)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,i=0,r=(s=0,(t=this.$foldData[s++])?t.start.row:1/0);ir&&(i=t.end.row+1,r=(t=this.$foldData[s++])?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,s=0;sn);o++);return[i,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=n}.call(m.prototype),e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),a.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,n){var i=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return i.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var i=null;return n.forEach((function(e,n,r,a){return i=new o(e,n,r,a),!(n==a&&t.start&&t.start.start&&0!=t.skipCurrent&&i.isEqual(t.start))||(i=null,!1)})),i},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,r=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),a=[],s=t.re;if(t.$isMultiLine){var c,l=s.length,u=r.length-l;e:for(var d=s.offset||0;d<=u;d++){for(var h=0;hf||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_w&&a[h].end.row==n.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_=s;n--)if(d(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=c,s=a.row;n>=s;n--)if(d(n,Number.MAX_VALUE,e))return}};else l=function(e){var n=a.row;if(!d(n,a.column,e)){for(n+=1;n<=c;n++)if(d(n,0,e))return;if(0!=t.wrap)for(n=s,c=a.row;n<=c;n++)if(d(n,0,e))return}};if(t.$isMultiLine)var u=n.length,d=function(t,r,o){var a=i?t-u+1:t;if(!(a<0)){var s=e.getLine(a),c=s.search(n[0]);if(!(!i&&cr))return!!o(a,c,a+u-1,d)||void 0}}};else if(i)d=function(t,i,r){var o,a=e.getLine(t),s=[],c=0;for(n.lastIndex=0;o=n.exec(a);){var l=o[0].length;if(c=o.index,!l){if(c>=a.length)break;n.lastIndex=c+=1}if(o.index+l>i)break;s.push(o.index,l)}for(var u=s.length-1;u>=0;u-=2){var d=s[u-1];if(r(t,d,t,d+(l=s[u])))return!0}};else d=function(t,i,r){var o,a=e.getLine(t),s=i;for(n.lastIndex=i;o=n.exec(a);){var c=o[0].length;if(r(t,s=o.index,t,s+c))return!0;if(!c&&(n.lastIndex=s+=1,s>=a.length))return!1}};return{forEach:l}}}).call(a.prototype),t.Search=a})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,n){var i=e("../lib/keys"),r=e("../lib/useragent"),o=i.KEY_MODS;function a(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){a.call(this,e,t),this.$singleCommand=!1}s.prototype=a.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var i=this.commandKeyBinding;for(var r in i){var o=i[r];if(o==e)delete i[r];else if(Array.isArray(o)){var a=o.indexOf(e);-1!=a&&(o.splice(a,1),1==o.length&&(i[r]=o[0]))}}},this.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var i="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach((function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;i+=(i?" ":"")+n,this._addCommandToBinding(i,"chainKeys")}),this),i+=" "}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(i+s,t,n)}),this)},this._addCommandToBinding=function(t,n,i){var r,o=this.commandKeyBinding;if(n)if(!o[t]||this.$singleCommand)o[t]=n;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(n))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof i&&(i=e(n));var a=o[t];for(r=0;ri)break}a.splice(r,0,n)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),n=t.pop(),r=i[n];if(i.FUNCTION_KEYS[r])n=i.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var o=0,a=t.length;a--;){var s=i.KEY_MODS[t[a]];if(null==s)return"undefined"!=typeof console&&console.error("invalid modifier "+t[a]+" in "+e),!1;o|=s}return{key:n,hashId:o}},this.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},this.handleKeyboard=function(e,t,n,i){if(!(i<0)){var r=o[t]+n,a=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,a=this.commandKeyBinding[e.$keyChain]||a),!a||"chainKeys"!=a&&"chainKeys"!=a[a.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||i>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:a}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(a.prototype),t.HashHandler=a,t.MultiHashHandler=s})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,n){var i=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,a=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.command.exec(e.editor,e.args||{})}))};i.inherits(a,r),function(){i.implement(this,o),this.exec=function(e,t,n){if(Array.isArray(e)){for(var i=e.length;i--;)if(this.exec(e[i],t,n))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:n};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(a.prototype),t.CommandManager=a})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,n){var i=e("../lib/lang"),r=e("../config"),o=e("../range").Range;function a(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(i.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),r=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(n.row).length,s=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,c=e.session.doc.getLine(n.row),l=n.row+1;l<=r.row+1;l++){var u=i.stringTrimLeft(i.stringTrimRight(e.session.doc.getLine(l)));0!==u.length&&(u=" "+u),c+=u}r.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+s)):(a=e.session.doc.getLine(n.row).length>a?a+1:a,e.selection.moveCursorTo(n.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,i=e.selection.rangeList.ranges,r=[];i.length<1&&(i=[e.selection.getRange()]);for(var a=0;a0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var i=this.selection.getRange(),r=this.renderer.layerConfig;(i.start.row>=r.lastRow||i.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,i=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),i=i&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else i=i&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(i=!1),i?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var n=this;_.loadModule(["keybinding",e],(function(i){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(i&&i.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var n=t.findMatchingBracket(e.getCursorPosition());if(n)var i=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)i=t.$mode.getMatching(e.session);i&&(t.$bracketHighlight=t.addMarker(i,"ace_bracket","text"))}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var n=e.getCursorPosition(),i=new b(e.session,n.row,n.column),r=i.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=i.stepForward())){var o=r.value,a=0,s=i.stepBackward();if("<"==s.value)do{s=r,(r=i.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"=0);else{do{r=s,s=i.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new p(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),i=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",i)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column-1,i=t.end.column+1,r=e.getLine(t.start.row),o=r.length,a=r.substring(Math.max(n,0),Math.min(i,o));if(!(n>=0&&/^[\w\d]/.test(a)||i<=o&&/[\w\d]$/.test(a)))if(a=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(a))return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:a})}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\r\n|\r|\n/),i=this.selection.rangeList.ranges;if(n.length>i.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,t);for(var r=i.length;r--;){var o=i[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,n[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,i=n.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=i.transformAction(n.getState(r.row),"insertion",this,n,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){(a=new p.fromPoints(r,r)).end.column+=e.length,this.session.remove(a)}}else{var a=this.getSelectionRange();r=this.session.remove(a),this.clearSelection()}if("\n"==e||"\r\n"==e){var s=n.getLine(r.row);if(r.column>s.search(/\S|$/)){var c=s.substr(r.column).search(/\S|$/);n.doc.removeInLine(r.row,r.column,r.column+c)}}this.clearSelection();var l=r.column,u=n.getState(r.row),d=(s=n.getLine(r.row),i.checkOutdent(u,s,e));if(n.insert(r,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new p(r.row,l+o.selection[0],r.row,l+o.selection[1])):this.selection.setSelectionRange(new p(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),n.getDocument().isNewLine(e)){var h=i.getNextLineIndent(u,s.slice(0,r.column),n.getTabString());n.insert({row:r.row+1,column:0},h)}d&&i.autoOutdent(u,n,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,i=n.getState(t.start.row),r=n.getMode().transformAction(i,"deletion",this,n,t);if(0===t.end.column){var o=n.getTextRange(t);if("\n"==o[o.length-1]){var a=n.getLine(t.end.row);/^\s+$/.test(a)&&(t.end.column=a.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,i,r=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var r=new p(0,0,0,0);for(i=e.first;i<=e.last;i++){var o=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=o.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var i=this.session.getLine(e);n.lastIndex=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,i=new p(t,n-1,t,n),r=this.session.getTextRange(i);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,n);if(o){var a=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,s=o.start+o.value.length-a,c=parseFloat(o.value);c*=Math.pow(10,s),a!==o.end&&np+1)break;p=m.last}for(u--,s=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(d=u+1);d<=u;)a[d].moveBy(s,0),d++;t||(s=0),c+=s}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,i=this.renderer.layerConfig,r=e*Math.floor(i.height/i.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(r,0)})):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=n.scrollTop;n.scrollBy(0,r*i.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,i){this.renderer.scrollToLine(e,t,n,i)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),i=new b(this.session,n.row,n.column),r=i.getCurrentToken(),o=r||i.stepForward();if(o){var a,s,c=!1,l={},u=n.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;u=0;--o)this.$tryReplace(n[o],e)&&i++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,i},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var r=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(r)||this.$search.$options.needle)||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,n),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,i=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",(function(){i=!0})),a=this.renderer.on("beforeRender",(function(){i&&(t=n.renderer.container.getBoundingClientRect())})),s=this.renderer.on("afterRender",(function(){if(i&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,o=e.$cursorLayer.$pixelPos,a=e.layerConfig,s=o.top-a.offset;null!=(i=o.top>=0&&s+t.top<0||!(o.topwindow.innerHeight)&&null)&&(r.style.top=s+"px",r.style.left=o.left+"px",r.style.height=a.lineHeight+"px",r.scrollIntoView(i)),i=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",s),this.renderer.off("beforeRender",a))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(v.prototype),_.defineOptions(v.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=v})),ace.define("ace/undomanager",["require","exports","module"],(function(e,t,n){var i=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){for(var n=new Array(e.length),i=0;i0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(i.prototype),t.UndoManager=i})),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],(function(e,t,n){var i=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,a),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ta&&(f=o.end.row+1,a=(o=t.getNextFoldLine(f,o))?o.start.row:1/0),f>r){for(;this.$cells.length>m+1;)p=this.$cells.pop(),this.element.removeChild(p.element);break}(p=this.$cells[++m])||((p={element:null,textNode:null,foldWidget:null}).element=i.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[m]=p);var g="ace_gutter-cell ";if(c[f]&&(g+=c[f]),l[f]&&(g+=l[f]),this.$annotations[f]&&(g+=this.$annotations[f].className),p.element.className!=g&&(p.element.className=g),(b=t.getRowLength(f)*e.lineHeight+"px")!=p.element.style.height&&(p.element.style.height=b),s){var _=s[f];null==_&&(_=s[f]=t.getFoldWidget(f))}if(_){p.foldWidget||(p.foldWidget=i.createElement("span"),p.element.appendChild(p.foldWidget));g="ace_fold-widget ace_"+_;"start"==_&&f==a&&fn.right-t.right?"foldWidgets":void 0}}).call(s.prototype),t.Gutter=s})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,n){var i=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var n in this.markers){var i=this.markers[n];if(i.range){var r=i.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),i.renderer){var o=this.$getTop(r.start.row,e),a=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);i.renderer(t,r,a,o,e)}else"fullLine"==i.type?this.drawFullLineMarker(t,r,i.clazz,e):"screenLine"==i.type?this.drawScreenLineMarker(t,r,i.clazz,e):r.isMultiLine()?"text"==i.type?this.drawTextMarker(t,r,i.clazz,e):this.drawMultiLineMarker(t,r,i.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,i.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,i.clazz+" ace_start ace_br15",e)}else i.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,n,r,o){for(var a=this.session,s=t.start.row,c=t.end.row,l=s,u=0,d=0,h=a.getScreenLastRowColumn(l),p=null,m=new i(l,t.start.column,l,d);l<=c;l++)m.start.row=m.end.row=l,m.start.column=l==s?t.start.column:a.getRowWrapIndent(l),m.end.column=h,u=d,d=h,h=l+1h?4:0)|(l==c?8:0)),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(e,m,p,r,l==c?0:1,o):this.drawSingleLineMarker(e,m,p,r,l==c?0:1,o)},this.drawMultiLineMarker=function(e,t,n,i,r){var o,a,s,c=this.$padding;(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((l=t.clone()).end.row=l.start.row,l.end.column=this.session.getLine(l.start.row).length,this.drawBidiSingleLineMarker(e,l,n+" ace_br1 ace_start",i,null,r)):(o=i.lineHeight,a=this.$getTop(t.start.row,i),s=c+t.start.column*i.characterWidth,e.push("
"));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var l;(l=t.clone()).start.row=l.end.row,l.start.column=0,this.drawBidiSingleLineMarker(e,l,n+" ace_br12",i,null,r)}else{var u=t.end.column*i.characterWidth;o=i.lineHeight,a=this.$getTop(t.end.row,i),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*i.lineHeight)<=0)){a=this.$getTop(t.start.row+1,i);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,n,i,r,o){var a=i.lineHeight,s=(t.end.column+(r||0)-t.start.column)*i.characterWidth,c=this.$getTop(t.start.row,i),l=this.$padding+t.start.column*i.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,n,i,r,o){var a=i.lineHeight,s=this.$getTop(t.start.row,i),c=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(t){e.push("
")}))},this.drawFullLineMarker=function(e,t,n,i,r){var o=this.$getTop(t.start.row,i),a=i.lineHeight;t.start.row!=t.end.row&&(a+=this.$getTop(t.end.row,i)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,n,i,r){var o=this.$getTop(t.start.row,i),a=i.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var i=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang");e("../lib/useragent");var a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){i.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;n"+o.stringRepeat(this.TAB_CHAR,n)+""):t.push(o.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",r="",a="";if(this.showInvisibles){i+=" ace_invisible",r=" ace_invisible_space",a=" ace_invisible_tab";var s=o.stringRepeat(this.SPACE_CHAR,this.tabSize),c=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else c=s=o.stringRepeat(" ",this.tabSize);this.$tabStrings[" "]=""+s+"",this.$tabStrings["\t"]=""+c+""}},this.updateLines=function(e,t,n){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var i=Math.max(t,e.firstRow),r=Math.min(n,e.lastRow),o=this.element.childNodes,a=0,s=e.firstRow;sl&&(s=c.end.row+1,l=(c=this.session.getNextFoldLine(s,c))?c.start.row:1/0),!(s>r);){var u=o[a++];if(u){var d=[];this.$renderLine(d,s,!this.$useLineGroups(),s==l&&c),u.style.height=e.lineHeight*this.session.getRowLength(s)+"px",u.innerHTML=d.join("")}s++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;i--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)n.removeChild(n.lastChild);if(e.firstRowt.lastRow){r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(r)}},this.$renderLinesFragment=function(e,t,n){for(var i=this.element.ownerDocument.createDocumentFragment(),o=t,a=this.session.getNextFoldLine(o),s=a?a.start.row:1/0;o>s&&(o=a.end.row+1,s=(a=this.session.getNextFoldLine(o,a))?a.start.row:1/0),!(o>n);){var c=r.createElement("div"),l=[];if(this.$renderLine(l,o,!1,o==s&&a),c.innerHTML=l.join(""),this.$useLineGroups())c.className="ace_line_group",i.appendChild(c),c.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;c.firstChild;)i.appendChild(c.firstChild);o++}return i},this.update=function(e){this.config=e;for(var t=[],n=e.firstRow,i=e.lastRow,r=n,o=this.session.getNextFoldLine(r),a=o?o.start.row:1/0;r>a&&(r=o.end.row+1,a=(o=this.session.getNextFoldLine(r,o))?o.start.row:1/0),!(r>i);)this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("
"),r++;this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,i){var r=this,a=i.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(e,n,i,a,s){if(n)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var c=r.session.getScreenTabSize(t+a);return t+=c-1,r.$tabStrings[c]}if(" "==e){var l=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",u=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+u+""}return i?""+r.SPACE_CHAR+"":(t+=1,""+e+"")}));if(this.$textToken[n.type])e.push(a);else{var s="ace_"+n.type.replace(/\./g," ace_"),c="";"fold"==n.type&&(c=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+i.length},this.renderIndentGuide=function(e,t,n){var i=t.search(this.$indentGuideRe);return i<=0||i>=n?t:" "==t[0]?(i-=i%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],i/this.tabSize)),t.substr(i)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],i)),t.substr(i)):t},this.$renderWrappedLine=function(e,t,n,i){for(var r=0,a=0,s=n[0],c=0,l=0;l=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,i||e.push("","
"),e.push(o.stringRepeat(" ",n.indent)),c=0,s=n[++a]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,c=this.$renderToken(e,c,u,d))}}},this.$renderSimpleLine=function(e,t){var n=0,i=t[0],r=i.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(n=this.$renderToken(e,n,i,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,n):this.$renderSimpleLine(e,r)}this.showInvisibles&&(i&&(t=i.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
")},this.$getFoldLineTokens=function(e,t){var n=this.session,i=[];var r=n.getTokens(e);return t.walk((function(e,t,o,a,s){null!=e?i.push({type:"fold",value:e}):(s&&(r=n.getTokens(t)),r.length&&function(e,t,n){for(var r=0,o=0;o+e[r].value.lengthn-t&&(a=a.substring(0,n-t)),i.push({type:e[r].type,value:a}),o=t+a.length,r+=1);on?i.push({type:e[r].type,value:a.substring(0,n-o)}):i.push(e[r]),o+=a.length,r+=1}}(r,a,o))}),t.end.row,this.session.getLine(t.end.row).length),i},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(s.prototype),t.Text=s})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,n){var i,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===i&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||i||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,i=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);n=0;for(var r=t.length;ne.height+e.offset||o.top<0)&&n>1)){var a=(this.cursors[i++]||this.addCursor()).style;this.drawCursor?this.drawCursor(a,o,e,t[n],this.session):(a.left=o.left+"px",a.top=o.top+"px",a.width=e.characterWidth+"px",a.height=e.lineHeight+"px")}}for(;this.cursors.length>i;)this.removeCursor();var s=this.session.getOverwrite();this.$setOverwrite(s),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,n){var i=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter,s=32768,c=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){i.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(c.prototype);var l=function(e,t){c.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};i.inherits(l,c),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>s?(this.coeff=s/e,e=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var u=function(e,t){c.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};i.inherits(u,c),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(u.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=u,t.VScrollBar=l,t.HScrollBar=u})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,n){var i=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;i.nextFrame((function(){var e;for(t.pending=!1;e=t.changes;)t.changes=0,t.onRender(e)}),this.window)}}}).call(r.prototype),t.RenderLoop=r})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,n){var i=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),a=e("../lib/useragent"),s=e("../lib/event_emitter").EventEmitter,c=0,l=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),c||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",c),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){i.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;c=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval((function(){e.checkForSizeChanges()}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===c){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(n){e={width:0,height:0}}var t={height:e.height,width:e.width/c}}else t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/c};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(l.prototype)})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],(function(e,t,n){var i=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),a=e("./lib/useragent"),s=e("./layer/gutter").Gutter,c=e("./layer/marker").Marker,l=e("./layer/text").Text,u=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}',"ace_editor.css");var g=function(e,t){var n=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var i=this.$textLayer=new l(this.content);this.canvas=i.element,this.$markerFront=new c(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",(function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)})),this.scrollBarH.addEventListener("scroll",(function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",(function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,i.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,i){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;i||(i=r.clientHeight||r.scrollHeight),n||(n=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,n,i);if(!this.$size.scrollerHeight||!n&&!i)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,n,i){i-=this.$extraHeight||0;var r=0,o=this.$size,a={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return i&&(e||o.height!=i)&&(o.height=i,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),n&&(e||o.width!=n)&&(r|=this.CHANGE_SIZE,o.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!n||!i,r&&this._signal("resize",a),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var i=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)i.top=i.left="0";else{var o=this.characterWidth;if(this.$composition){var a=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(a)[0]+2,r+=2}(n-=this.scrollLeft)>this.$size.scrollerWidth-o&&(n=this.$size.scrollerWidth-o),n+=this.gutterWidth,i.height=r+"px",i.width=o+"px",i.left=Math.min(n,this.$size.scrollerWidth-o)+"px",i.top=Math.min(t,this.$size.height-r)+"px"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,i){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|i,r.left=0|n,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var i=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;i>0&&(this.scrollTop=i,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}if(e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender");if(e&this.CHANGE_SCROLL)return e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender");e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var i=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var r=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,i=this.session.getScreenLength()*this.lineHeight,r=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-r-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var s=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,i-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,r+2*this.$padding-t.scrollerWidth+d.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+u<0||this.scrollTop>d.top),p=s!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var m,f,g=Math.ceil(l/this.lineHeight)-1,_=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),b=_+g,v=this.lineHeight;_=e.screenToDocumentRow(_,0);var y=e.getFoldLine(_);y&&(_=y.start.row),m=e.documentToScreenRow(_,0),f=e.getRowLength(_)*v,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(b)*v+f,c=this.scrollTop-m*v;var w=0;return this.layerConfig.width!=r&&(w=this.CHANGE_H_SCROLL),(a||p)&&(w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(r=this.$getLongestLine())),this.layerConfig={width:r,padding:this.$padding,firstRow:_,firstRowScreen:m,lastRow:b,lineHeight:v,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:c,gutterOffset:v?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/v)):0,height:this.$size.scrollerHeight},w},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||to?(t&&c+a>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):c+this.$size.scrollerHeight-sr?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),i=e+this.scrollLeft-n.left-this.$padding,r=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=Math.round(r);return{row:o,column:a,side:r-a>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),i=e+this.scrollLeft-n.left-this.$padding,r=Math.round(i/this.characterWidth),o=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),i=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e)?this.session.$bidiHandler.getPosLeft(i.column):Math.round(i.column*this.characterWidth)),o=i.row*this.lineHeight;return{pageX:n.left+r-this.scrollLeft,pageY:n.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)a(e);else{var i=e||this.$options.theme.initialValue;o.loadModule(["theme",i],a)}function a(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,n){var i=e("../lib/oop"),r=e("../lib/net"),o=e("../lib/event_emitter").EventEmitter,a=e("../config");function s(e,t){var n=function(e,t){var n=t.src;r.qualifyURL(e);try{return new Blob([n],{type:"application/javascript"})}catch(o){var i=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return i.append(n),i.getBlob("application/javascript")}}(e,t),i=(window.URL||window.webkitURL).createObjectURL(n);return new Worker(i)}var c=function(t,n,i,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)r=r||a.moduleUrl(n.id,"worker");else{var c=this.$normalizePath;r=r||c(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach((function(t){l[t]=c(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}this.$worker=s(r,n),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:i}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,o),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return r.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var i=this.callbackId++;this.callbacks[i]=n,t.push(i)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var l=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var i=null,r=!1,s=Object.create(o),c=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){c.messageBuffer.push(e),i&&(r?setTimeout(l):l())},this.setEmitSync=function(e){r=e};var l=function(){var e=c.messageBuffer.shift();e.command?i[e.command].apply(i,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){c.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],(function(e){for(i=new e[n](s);c.messageBuffer.length;)l()}))};l.prototype=c.prototype,t.UIWorkerClient=l,t.WorkerClient=c,t.createWorker=s})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,n){var i=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),a=function(e,t,n,i,r,o){var a=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=i,this.$onCursorChange=function(){setTimeout((function(){a.onCursorChange()}))},this.$pos=n;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=n.addMarker(new i(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(n){var i=t.createAnchor(n.row,n.column);i.$insertRight=!0,i.detach(),e.others.push(i)})),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(n){n.markerId=e.addMarker(new i(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=n),r&&!this.session.$fromUndo)if("insert"===e.action)for(var a=this.others.length-1;a>=0;a--){var s={row:(c=this.others[a]).row,column:c.column+o};this.doc.insertMergedLines(s,e.lines)}else if("remove"===e.action)for(a=this.others.length-1;a>=0;a--){var c;s={row:(c=this.others[a]).row,column:c.column+o};this.doc.remove(new i(s.row,s.column,s.row,s.column-n))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,r){t.removeMarker(n.markerId),n.markerId=t.addMarker(new i(n.row,n.column,n.row,n.column+e.length),r,null,!1)};n(this.pos,this.mainClass);for(var r=this.others.length;r--;)n(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var i=this.ranges.indexOf(e[n]);this.ranges.splice(i,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{n=this.getRange();var i=this.isBackwards(),o=n.start.row,a=n.end.row;if(o==a){if(i)var s=n.end,c=n.start;else s=n.start,c=n.end;return this.addRange(r.fromPoints(c,c)),void this.addRange(r.fromPoints(s,s))}var l=[],u=this.getLineRange(o,!0);u.start.column=n.start.column,l.push(u);for(var d=o+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],n=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var i=this.session.documentToScreenPosition(this.selectionLead),o=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(i,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var i=[],o=e.column0;)b--;if(b>0)for(var v=0;i[v].isEmpty();)v++;for(var y=b;y>=v;y--)i[y].isEmpty()&&i.splice(y,1)}return i}}.call(o.prototype);var h=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",a),e.commands.addCommands(l.defaultCommands),function(e){var t=e.textInput.getElement(),n=!1;function i(t){n&&(e.renderer.setMouseCursor(""),n=!1)}s.addListener(t,"keydown",(function(t){var r=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&r?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&i()})),s.addListener(t,"keyup",i),s.addListener(t,"blur",i)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var i=e[n];if(i.marker){this.session.removeMarker(i.marker);var r=t.indexOf(i);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(l.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(l.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?i=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?i=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),i=t.exec(n,e.args||{})):i=t.multiSelectAction(n,e.args||{});else{var i=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return i}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var i,r=n&&n.keepOrder,a=1==n||n&&n.$byLines,s=this.session,c=this.selection,l=c.rangeList,u=(r?c:l).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=c._eventRegistry;c._eventRegistry={};var h=new o(s);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(a)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;h.fromOrientedRange(u[p]),h.index=p,this.selection=s.selection=h;var m=e.exec?e.exec(this,t||{}):e(this,t||{});i||void 0===m||(i=m),h.toOrientedRange(u[p])}h.detach(),this.selection=s.selection=c,this.inVirtualSelectionMode=!1,c._eventRegistry=d,c.mergeOverlappingRanges();var f=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),f&&f.from==f.to&&this.renderer.animateScrolling(f.from),i}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],i=0;ia&&(a=n.column),iu?e.insert(i,c.stringRepeat(" ",o-u)):e.remove(new r(i.row,i.column,i.row,i.column-o+u)),t.start.column=t.end.column=a,t.start.row=t.end.row=i.row,t.cursor=t.end})),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),d=u.start.row,h=u.end.row,p=d==h;if(p){var m,f=this.session.getLength();do{m=this.session.getLine(h)}while(/[=:]/.test(m)&&++h0);d<0&&(d=0),h>=f&&(h=f-1)}var g=this.session.removeFullLines(d,h);g=this.$reAlignText(g,p),this.session.insert({row:d,column:0},g.join("\n")+"\n"),p||(u.start.column=0,u.end.column=g[g.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,i,r,o=!0,a=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,i=t[2].length,r=t[3].length,t):(n+i+r!=t[1].length+t[2].length+t[3].length&&(a=!1),n!=t[1].length&&(o=!1),n>t[1].length&&(n=t[1].length),it[3].length&&(r=t[3].length),t):[e]})).map(t?l:o?a?function(e){return e[2]?s(n+i-e[2].length)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:l:function(e){return e[2]?s(n)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function s(e){return c.stringRepeat(" ",e)}function l(e){return e[2]?s(n)+e[2]+s(i-e[2].length+r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(h.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,n){var i=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);return this.foldingStartMarker.test(i)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(i)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var r=/\S/,o=e.getLine(t),a=o.search(r);if(-1!=a){for(var s=n||o.length,c=e.getLength(),l=t,u=t;++tl){var h=e.getLine(u).length;return new i(l,s,u,h)}}},this.openingBracketBlock=function(e,t,n,r,o){var a={row:n,column:r+1},s=e.$findClosingBracket(t,a,o);if(s){var c=e.foldWidgets[s.row];return null==c&&(c=e.getFoldWidget(s.row)),"start"==c&&s.row>a.row&&(s.row--,s.column=e.getLine(s.row).length),i.fromPoints(a,s)}},this.closingBracketBlock=function(e,t,n,r,o){var a={row:n,column:r},s=e.$findOpeningBracket(t,a);if(s)return s.column++,a.column--,i.fromPoints(s,a)}}).call(r.prototype)})),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],(function(e,t,n){e("./lib/oop");var i=e("./lib/dom");function r(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}e("./range").Range,function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(n&&e.action){for(var i=e.data,r=i.start.row,o=i.end.row,a="add"==e.action,s=r+1;s0&&!i[r];)r--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var a=r;a<=o;a++){var s=i[a];if(s&&s.el)if(s.hidden)s.el.style.top=-100-(s.pixelHeight||0)+"px";else{s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var c=t.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;s.coverLine||(c+=n.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=c-n.offset+"px";var l=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(l-=t.scrollLeft),s.el.style.left=l+"px",s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=n.width+2*n.padding+"px"),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+"px":s.el.style.right=""}}}}}.call(r.prototype),t.LineWidgets=r})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,n){var i=e("../line_widgets").LineWidgets,r=e("../lib/dom"),o=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new i(n),n.widgetManager.attach(e));var a=e.getCursorPosition(),s=a.row,c=n.widgetManager.getWidgetsAtRow(s).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():s-=t;var l,u=function(e,t,n){var i=e.getAnnotations().sort(o.comparePoints);if(i.length){var r=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var o=i+r>>1,a=n(t,e[o]);if(a>0)i=o+1;else{if(!(a<0))return o;r=o-1}}return-(i+1)}(i,{row:t,column:-1},o.comparePoints);r<0&&(r=-r-1),r>=i.length?r=n>0?0:i.length-1:0===r&&n<0&&(r=i.length-1);var a=i[r];if(a&&n){if(a.row===t){do{a=i[r+=n]}while(a&&a.row===t);if(!a)return i.slice()}var s=[];t=a.row;do{s[n<0?"unshift":"push"](a),a=i[r+=n]}while(a&&a.row==t);return s.length&&s}}}(n,s,t);if(u){var d=u[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,l=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var h={row:a.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},p=h.el.appendChild(r.createElement("div")),m=h.el.appendChild(r.createElement("div"));m.className="error_widget_arrow "+l.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
"),p.appendChild(r.createElement("div"));var g=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")})),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],(function(e,t,n){e("./lib/fixoldbrowsers");var i=e("./lib/dom"),r=e("./lib/event"),o=e("./editor").Editor,a=e("./edit_session").EditSession,s=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(e){if("string"==typeof e){var n=e;if(!(e=document.getElementById(n)))throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var a="";if(e&&/input|textarea/i.test(e.tagName)){var s=e;a=s.value,e=i.createElement("pre"),s.parentNode.replaceChild(e,s)}else e&&(a=i.getInnerText(e),e.innerHTML="");var l=t.createEditSession(a),u=new o(new c(e));u.setSession(l);var d={document:l,editor:u,onResize:u.resize.bind(u,null)};return s&&(d.textarea=s),r.addListener(window,"resize",d.onResize),u.on("destroy",(function(){r.removeListener(window,"resize",d.onResize),d.editor.container.env=null})),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var n=new a(e,t);return n.setUndoManager(new s),n},t.EditSession=a,t.UndoManager=s,t.version="1.2.9"})),ace.acequire(["ace/ace"],(function(e){for(var t in e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])}));var Qf=window.ace.acequire("ace/ace"),eg={id:"ace/mode/json_worker",src:'"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'};ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){var i=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(o,r),t.JsonHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){var i=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var r=n[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,n){var i=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(a,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var r=this._getFoldWidgetBase(e,t,n);return!r&&this.startRegionRe.test(i)?"start":r},this.getFoldWidgetRange=function(e,t,n,i){var r,o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);if(r=o.match(this.foldingStartMarker)){var a=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,a);var s=e.getCommentFoldRange(n,a+r[0].length,1);return s&&!s.isMultiLine()&&(i?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(r=o.match(this.foldingStopMarker))){a=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,a):e.getCommentFoldRange(n,a,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),i=n.search(/\S/),o=t,a=n.length,s=t+=1,c=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=o)break;if(u.isMultiLine())t=u.end.row;else if(i==l)break}s=t}}return new r(o,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),o=e.getLength(),a=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++na)return new r(a,i,n,t.length)}}.call(a.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,n){var i=e("../lib/oop"),r=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new c};i.inherits(u,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);"start"==e&&(t.match(/^.*[\{\(\[]\s*$/)&&(i+=n));return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],eg,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})),ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){var i=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,n,i){var r=/^\s*/.exec(i)[0];return n.length<1?n.push(this.next):n[0]="mlString",n.length<2?n.push(r.length):n[1]=r.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,n){return n[1]>=e.length?(this.next="start",n.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};i.inherits(o,r),t.YamlHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){var i=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var r=n[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,n){var i=e("../../lib/oop"),r=e("./fold_mode").FoldMode,o=e("../../range").Range,a=t.FoldMode=function(){};i.inherits(a,r),function(){this.getFoldWidgetRange=function(e,t,n){var i=this.indentationBlock(e,n);if(i)return i;var r=/\S/,a=e.getLine(n),s=a.search(r);if(-1!=s&&"#"==a[s]){for(var c=a.length,l=e.getLength(),u=n,d=n;++nu){var p=e.getLine(d).length;return new o(u,c,d,p)}}},this.getFoldWidget=function(e,t,n){var i=e.getLine(n),r=i.search(/\S/),o=e.getLine(n+1),a=e.getLine(n-1),s=a.search(/\S/),c=o.search(/\S/);if(-1==r)return e.foldWidgets[n-1]=-1!=s&&s=0;--r){var o=this.leading[r];t.end.offset>=o.start&&(n.unshift(o.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var n=this.trailing.length-1;n>=0;--n){var i=this.trailing[n];i.start>=e.end.offset&&t.unshift(i.comment)}return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var o=r.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,n=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var i=(t.leadingComments?t.leadingComments.length:0)-1;i>=0;--i){var r=t.leadingComments[i];r.range[1]<=e.start.offset&&(n.unshift(r),t.leadingComments.splice(i,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,n}for(i=this.leading.length-1;i>=0;--i){var o;(o=this.leading[i]).start<=e.start.offset&&(n.unshift(o.comment),this.leading.splice(i,1))}return n},e.prototype.visitNode=function(e,t){if(!(e.type===i.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(t),r=this.findLeadingComments(t);r.length>0&&(e.leadingComments=r),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",i={type:n,value:e.value};if(e.range&&(i.range=e.range),e.loc&&(i.loc=e.loc),this.comments.push(i),this.attach){var r={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=n,this.leading.push(r),this.trailing.push(r)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){var i,r=this&&this.__extends||(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(4),a=n(5),s=n(6),c=n(7),l=n(8),u=n(13),d=n(14);function h(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var n=e;t=h(n.namespace)+":"+h(n.name);break;case s.JSXSyntax.JSXMemberExpression:var i=e;t=h(i.object)+"."+h(i.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var p=function(e){function t(t,n,i){return e.call(this,t,n,i)||this}return r(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,i=!1,r=!1,a=!1;!this.scanner.eof()&&n&&!i;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(i=";"===s,t+=s,++this.scanner.index,!i)switch(t.length){case 2:r="#"===s;break;case 3:r&&(n=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),r=r&&!a);break;default:n=(n=n&&!(r&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(n&&i&&t.length>2){var c=t.substr(1,t.length-2);r&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):r||a||!d.XHTMLEntities[c]||(t=d.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,n=this.scanner.source[this.scanner.index++],i="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==n;)i+="&"===c?this.scanXHTMLEntity(n):c;return{type:8,value:i,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var r=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===r&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,o.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(i)),i},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var i=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(n,i))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(r,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=n;this.expectJSX(":");var r=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(i,r))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,i,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var n=this.parseJSXElementName(),i=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(n,r,i))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],i=null;if(!t.selfClosing){var r=this.parseComplexJSXElement({node:e,opening:t,closing:i,children:n});n=r.children,i=r.closing}return this.finalize(e,new a.JSXElement(t,n,i))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=p},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(6),r=function(e){this.type=i.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=r;var o=function(e,t,n){this.type=i.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n};t.JSXElement=o;var a=function(){this.type=i.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=i.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=i.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=i.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var u=function(e,t){this.type=i.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var d=function(e,t){this.type=i.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=d;var h=function(e,t,n){this.type=i.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n};t.JSXOpeningElement=h;var p=function(e){this.type=i.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=p;var m=function(e,t){this.type=i.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(e){this.type=i.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=r;var o=function(e){this.type=i.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,n){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,n){this.type=i.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n};t.AssignmentExpression=s;var c=function(e,t){this.type=i.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,n){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n,this.async=!0};t.AsyncArrowFunctionExpression=l;var u=function(e,t,n){this.type=i.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var d=function(e,t,n){this.type=i.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=d;var h=function(e){this.type=i.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var p=function(e,t,n){var r="||"===e||"&&"===e;this.type=r?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n};t.BinaryExpression=p;var m=function(e){this.type=i.Syntax.BlockStatement,this.body=e};t.BlockStatement=m;var f=function(e){this.type=i.Syntax.BreakStatement,this.label=e};t.BreakStatement=f;var g=function(e,t){this.type=i.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=g;var _=function(e,t){this.type=i.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=_;var b=function(e){this.type=i.Syntax.ClassBody,this.body=e};t.ClassBody=b;var v=function(e,t,n){this.type=i.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n};t.ClassDeclaration=v;var y=function(e,t,n){this.type=i.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n};t.ClassExpression=y;var w=function(e,t){this.type=i.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=w;var x=function(e,t,n){this.type=i.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n};t.ConditionalExpression=x;var A=function(e){this.type=i.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=A;var N=function(){this.type=i.Syntax.DebuggerStatement};t.DebuggerStatement=N;var k=function(e,t){this.type=i.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=k;var C=function(e,t){this.type=i.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var E=function(){this.type=i.Syntax.EmptyStatement};t.EmptyStatement=E;var S=function(e){this.type=i.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var O=function(e){this.type=i.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=O;var F=function(e,t,n){this.type=i.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n};t.ExportNamedDeclaration=F;var D=function(e,t){this.type=i.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=D;var B=function(e){this.type=i.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=B;var L=function(e,t,n){this.type=i.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1};t.ForInStatement=L;var M=function(e,t,n){this.type=i.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n};t.ForOfStatement=M;var T=function(e,t,n,r){this.type=i.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r};t.ForStatement=T;var R=function(e,t,n,r){this.type=i.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1,this.async=!1};t.FunctionDeclaration=R;var $=function(e,t,n,r){this.type=i.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=r,this.expression=!1,this.async=!1};t.FunctionExpression=$;var I=function(e){this.type=i.Syntax.Identifier,this.name=e};t.Identifier=I;var j=function(e,t,n){this.type=i.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n};t.IfStatement=j;var P=function(e,t){this.type=i.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=P;var z=function(e){this.type=i.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=z;var U=function(e){this.type=i.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=U;var W=function(e,t){this.type=i.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=W;var H=function(e,t){this.type=i.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=H;var V=function(e,t){this.type=i.Syntax.Literal,this.value=e,this.raw=t};t.Literal=V;var G=function(e,t){this.type=i.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=G;var q=function(e,t,n,r,o){this.type=i.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=r,this.static=o};t.MethodDefinition=q;var K=function(e){this.type=i.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=K;var X=function(e,t){this.type=i.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=X;var J=function(e){this.type=i.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=J;var Y=function(e){this.type=i.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var Z=function(e,t,n,r,o,a){this.type=i.Syntax.Property,this.key=t,this.computed=n,this.value=r,this.kind=e,this.method=o,this.shorthand=a};t.Property=Z;var Q=function(e,t,n,r){this.type=i.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:n,flags:r}};t.RegexLiteral=Q;var ee=function(e){this.type=i.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=i.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var ne=function(e){this.type=i.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=ne;var ie=function(e){this.type=i.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ie;var re=function(e){this.type=i.Syntax.SpreadElement,this.argument=e};t.SpreadElement=re;var oe=function(e,t){this.type=i.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=i.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=i.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=i.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=i.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ue=function(e,t){this.type=i.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var de=function(e,t){this.type=i.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=de;var he=function(){this.type=i.Syntax.ThisExpression};t.ThisExpression=he;var pe=function(e){this.type=i.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=pe;var me=function(e,t,n){this.type=i.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n};t.TryStatement=me;var fe=function(e,t){this.type=i.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=fe;var ge=function(e,t,n){this.type=i.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n};t.UpdateExpression=ge;var _e=function(e,t){this.type=i.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=_e;var be=function(e,t){this.type=i.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ve=function(e,t){this.type=i.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ve;var ye=function(e,t){this.type=i.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ye;var we=function(e,t){this.type=i.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=we},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(9),r=n(10),o=n(11),a=n(7),s=n(12),c=n(2),l=n(13),u="ArrowParameterPlaceHolder",d=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=i,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,n,i=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(i,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),n=this.getTokenRaw(t),e=this.finalize(i,new a.Literal(t.value,n));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),n=this.getTokenRaw(t),e=this.finalize(i,new a.Literal("true"===t.value,n));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),n=this.getTokenRaw(t),e=this.finalize(i,new a.Literal(null,n));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),n=this.getTokenRaw(t),e=this.finalize(i,new a.RegexLiteral(t.regex,n,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(i,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(i,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=n,i},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,n.params,i,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,n=this.context.await;this.context.allowYield=!1,this.context.await=!0;var i=this.parseFormalParameters(),r=this.parsePropertyMethod(i);return this.context.allowYield=t,this.context.await=n,this.finalize(e,new a.AsyncFunctionExpression(null,i.params,r))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),n=this.nextToken();switch(n.type){case 8:case 6:this.context.strict&&n.octal&&this.tolerateUnexpectedToken(n,o.Messages.StrictOctalLiteral);var i=this.getTokenRaw(n);e=this.finalize(t,new a.Literal(n.value,i));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(n.value));break;case 7:"["===n.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(n);break;default:e=this.throwUnexpectedToken(n)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n=this.createNode(),i=this.lookahead,r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(3===i.type){var h=i.value;this.nextToken(),c=this.match("["),r=(d=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(n,new a.Identifier(h))}else this.match("*")?this.nextToken():(c=this.match("["),r=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(3===i.type&&!d&&"get"===i.value&&p)t="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===i.type&&!d&&"set"===i.value&&p)t="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===i.type&&"*"===i.value&&p)t="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!d)!c&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===i.type)if(h=this.finalize(n,new a.Identifier(i.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(n,new a.AssignmentPattern(h,m))}else u=!0,s=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(n,new a.Property(t,r,c,s,l,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n=t.value,r=t.cooked;return this.finalize(e,new a.TemplateElement({raw:n,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n=t.value,i=t.cooked;return this.finalize(e,new a.TemplateElement({raw:n,cooked:i},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],i=this.parseTemplateHead();for(n.push(i);!i.tail;)t.push(this.parseExpression()),i=this.parseTemplateElement(),n.push(i);return this.finalize(e,new a.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:u,params:[],async:!1};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:u,params:[e],async:!1};else{var i=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(i=!0,e={type:u,params:[e],async:!1}),!i)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,n.value,s],l=[i];!((i=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&i<=l[l.length-1];){s=c.pop();var u=c.pop();l.pop(),o=c.pop(),r.pop();var d=this.startNode(r[r.length-1]);c.push(this.finalize(d,new a.BinaryExpression(u,o,s)))}c.push(this.nextToken().value),l.push(i),r.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=c.length-1;t=c[h];for(var p=r.pop();h>1;){var m=r.pop(),f=p&&p.lineStart;d=this.startNode(m,f),u=c[h-1],t=this.finalize(d,new a.BinaryExpression(u,c[h-2],t)),h-=2,p=m}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,i,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var n=0;n")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var m=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var g=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=g}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var _=f.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=r?this.finalize(m,new a.AsyncArrowFunctionExpression(s.params,f,_)):this.finalize(m,new a.ArrowFunctionExpression(s.params,f,_)),this.context.strict=l,this.context.allowStrictDirective=d,this.context.allowYield=h,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(n,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(n,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var v=(n=this.nextToken()).value,y=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(v,e,y)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(n))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var n=this.createNode(),i=this.parsePattern([],e);this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictVarName);var r=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&i.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new a.VariableDeclarator(i,r))},e.prototype.parseBindingList=function(e,t){for(var n=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,t));return n},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),n=this.nextToken().value;i.assert("let"===n||"const"===n,"Lexical declaration must be either let or const");var r=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(r,n))},e.prototype.parseBindingRestElement=function(e,t){var n=this.createNode();this.expect("...");var i=this.parsePattern(e,t);return this.finalize(n,new a.RestElement(i))},e.prototype.parseArrayPattern=function(e,t){var n=this.createNode();this.expect("[");for(var i=[];!this.match("]");)if(this.match(","))this.nextToken(),i.push(null);else{if(this.match("...")){i.push(this.parseBindingRestElement(e,t));break}i.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new a.ArrayPattern(i))},e.prototype.parsePropertyPattern=function(e,t){var n,i,r=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;n=this.parseVariableIdentifier();var l=this.finalize(r,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var u=this.parseAssignmentExpression();i=this.finalize(this.startNode(c),new a.AssignmentPattern(l,u))}else this.match(":")?(this.expect(":"),i=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,i=l)}else o=this.match("["),n=this.parseObjectPropertyKey(),this.expect(":"),i=this.parsePatternWithDefault(e,t);return this.finalize(r,new a.Property("init",n,o,i,!1,s))},e.prototype.parseObjectPattern=function(e,t){var n=this.createNode(),i=[];for(this.expect("{");!this.match("}");)i.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new a.ObjectPattern(i))},e.prototype.parsePattern=function(e,t){var n;return this.match("[")?n=this.parseArrayPattern(e,t):this.match("{")?n=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),n=this.parseVariableIdentifier(t)),n},e.prototype.parsePatternWithDefault=function(e,t){var n=this.lookahead,i=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,i=this.finalize(this.startNode(n),new a.AssignmentPattern(i,o))}return i},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),n=this.nextToken();return 4===n.type&&"yield"===n.value?this.context.strict?this.tolerateUnexpectedToken(n,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(n):3!==n.type?this.context.strict&&4===n.type&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,o.Messages.StrictReservedWord):(this.context.strict||"let"!==n.value||"var"!==e)&&this.throwUnexpectedToken(n):(this.context.isModule||this.context.await)&&3===n.type&&"await"===n.value&&this.tolerateUnexpectedToken(n),this.finalize(t,new a.Identifier(n.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),n=this.parsePattern([],"var");this.context.strict&&n.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):n.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(n,i))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(t));return n},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),n=null;this.expectKeyword("if"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseIfClause())),this.finalize(t,new a.IfStatement(i,e,n))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(n,i))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=i}return this.finalize(t,new a.WhileStatement(n,e))},e.prototype.parseForStatement=function(){var e,t,n,i=null,r=null,s=null,l=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){i=this.createNode(),this.nextToken();var d=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===h.length&&this.matchKeyword("in")){var p=h[0];p.init&&(p.id.type===c.Syntax.ArrayPattern||p.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),i=this.finalize(i,new a.VariableDeclaration(h,"var")),this.nextToken(),e=i,t=this.parseExpression(),i=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new a.VariableDeclaration(h,"var")),this.nextToken(),e=i,t=this.parseAssignmentExpression(),i=null,l=!1):(i=this.finalize(i,new a.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){i=this.createNode();var m=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(d=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(m,{inFor:!0}),this.context.allowIn=d,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(i=this.finalize(i,new a.VariableDeclaration(h,m)),this.nextToken(),e=i,t=this.parseExpression(),i=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new a.VariableDeclaration(h,m)),this.nextToken(),e=i,t=this.parseAssignmentExpression(),i=null,l=!1):(this.consumeSemicolon(),i=this.finalize(i,new a.VariableDeclaration(h,m)))):(i=this.finalize(i,new a.Identifier(m)),this.nextToken(),e=i,t=this.parseExpression(),i=null)}else{var f=this.lookahead;if(d=this.context.allowIn,this.context.allowIn=!1,i=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&i.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(i),e=i,t=this.parseExpression(),i=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&i.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(i),e=i,t=this.parseAssignmentExpression(),i=null,l=!1;else{if(this.match(",")){for(var g=[i];this.match(",");)this.nextToken(),g.push(this.isolateCoverGrammar(this.parseAssignmentExpression));i=this.finalize(this.startNode(f),new a.SequenceExpression(g))}this.expect(";")}}if(void 0===e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),n=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var _=this.context.inIteration;this.context.inIteration=!0,n=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=_}return void 0===e?this.finalize(u,new a.ForStatement(i,r,s,n)):l?this.finalize(u,new a.ForInStatement(e,t,n)):this.finalize(u,new a.ForOfStatement(e,t,n))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var n=this.parseVariableIdentifier();t=n;var i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(o.Messages.UnknownLabel,n.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var n=this.parseVariableIdentifier(),i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(o.Messages.UnknownLabel,n.name),t=n}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(n,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var n=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)n.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,n))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var i=[],r=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(r&&this.throwError(o.Messages.MultipleDefaultsInSwitch),r=!0),i.push(s)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new a.SwitchStatement(t,i))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),n=this.parseExpression();if(n.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var i=n,r="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(o.Messages.Redeclaration,"Label",i.name),this.context.labelSet[r]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=u}else s=this.parseStatement();delete this.context.labelSet[r],e=new a.LabeledStatement(i,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(n);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],n=this.parsePattern(t),i={},r=0;r0&&this.tolerateError(o.Messages.BadGetterArity);var i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,n.params,i,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var n=this.parseFormalParameters();1!==n.params.length?this.tolerateError(o.Messages.BadSetterArity):n.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,n.params,i,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var n=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,n.params,i,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,n=!1;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=!1,(n=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=i}return this.finalize(e,new a.YieldExpression(t,n))},e.prototype.parseClassElement=function(e){var t=this.lookahead,n=this.createNode(),i="",r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,c=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(d=!0,t=this.lookahead,r=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var p=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&p?(i="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&p&&(i="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&p&&(i="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!i&&r&&this.match("(")&&(i="init",s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),i||this.throwUnexpectedToken(this.lookahead),"init"===i&&(i="method"),c||(u&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(r,"constructor")&&(("method"!==i||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,i="constructor")),this.finalize(n,new a.MethodDefinition(r,c,s,i,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=n,this.finalize(t,new a.ClassDeclaration(i,r,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=3===this.lookahead.type?this.parseVariableIdentifier():null,i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(n,i,r))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),n=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,n))},e.prototype.parseImportSpecifier=function(){var e,t,n=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(n,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var n=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(n,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),n=t;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,n))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(n))}else this.matchKeyword("class")?(n=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(n))):this.matchContextualKeyword("async")?(n=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(n))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(n)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){switch(n=void 0,this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(n,[],null))}else if(this.matchAsyncFunction())n=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(n,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(i,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=d},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var n=new Error(e);try{throw n}catch(i){Object.create&&Object.defineProperty&&(n=Object.create(i),Object.defineProperty(n,"column",{value:t}))}return n},e.prototype.createError=function(e,t,n,i){var r="Line "+t+": "+i,o=this.constructError(r,n);return o.index=e,o.lineNumber=t,o.description=i,o},e.prototype.throwError=function(e,t,n,i){throw this.createError(e,t,n,i)},e.prototype.tolerateError=function(e,t,n,i){var r=this.createError(e,t,n,i);if(!this.tolerant)throw r;this.recordError(r)},e}();t.ErrorHandler=n},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(9),r=n(4),o=n(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,n,i=[];for(this.trackComment&&(i=[],t=this.index-e,n={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(o)){if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:n};i.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,i}}return this.trackComment&&(n.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:n},i.push(a)),i},e.prototype.skipMultiLineComment=function(){var e,t,n=[];for(this.trackComment&&(n=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(i))13===i&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===i){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};n.push(o)}return n}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},n.push(o)),this.tolerateUnexpectedToken(),n},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(n))++this.index;else if(r.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(47===(n=this.source.charCodeAt(this.index+1))){this.index+=2;var i=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(i)),t=!0}else{if(42!==n)break;this.index+=2,i=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(i))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,i=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(i))}else{if(60!==n||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,i=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(i))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);n>=56320&&n<=57343&&(t=1024*(t-55296)+n-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i1114111||"}"!==e)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),n=r.Character.fromCodePoint(t);for(this.index+=n.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),n=e);!this.eof()&&(t=this.codePointAt(this.index),r.Character.isIdentifierPart(t));)n+=e=r.Character.fromCodePoint(t),this.index+=e.length,92===t&&(n=n.substr(0,n.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),n+=e);return n},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=s(e);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+s(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===n.length?3:this.isKeyword(n)?4:"null"===n?5:"true"===n||"false"===n?1:3)&&t+n.length!==this.index){var i=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=i}return{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(t)||r.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",i=!1;for(r.Character.isOctalDigit(e.charCodeAt(0))?(i=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return i||0!==n.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(n,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,n){var r=parseInt(t||n,16);return r>1114111&&i.throwUnexpectedToken(o.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(n)}catch(r){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],r.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(r.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){a=!0;break}"["===e&&(n=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!r.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var n=this.index,i=this.scanHexEscape("u");if(null!==i)for(e+=i;n=55296&&e<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(10),r=n(12),o=n(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(i=this.values[this.curly-4])&&!this.beforeFunctionExpression(i);else if("function"===this.values[this.curly-4]){var i;t=!(i=this.values[this.curly-5])||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?r-4:r;for(n=0;n>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=ag[e.charCodeAt(n)]<<2|ag[e.charCodeAt(n+1)]>>4,a[s++]=255&t);1===o&&(t=ag[e.charCodeAt(n)]<<10|ag[e.charCodeAt(n+1)]<<4|ag[e.charCodeAt(n+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,n=e.length,i=n%3,r=[],o=16383,a=0,s=n-i;as?s:a+o));1===i?(t=e[n-1],r.push(og[t>>2]+og[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],r.push(og[t>>10]+og[t>>4&63]+og[t<<2&63]+"="));return r.join("")}},og=[],ag=[],sg="undefined"!=typeof Uint8Array?Uint8Array:Array,cg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lg=0,ug=cg.length;lg0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function hg(e,t,n){for(var i,r,o=[],a=t;a>18&63]+og[r>>12&63]+og[r>>6&63]+og[63&r]);return o.join("")}ag["-".charCodeAt(0)]=62,ag["_".charCodeAt(0)]=63;var pg={}; -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function mg(e){return Object.prototype.toString.call(e)}pg.read=function(e,t,n,i,r){var o,a,s=8*r-i-1,c=(1<>1,u=-7,d=n?r-1:0,h=n?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=i;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,i),o-=l}return(p?-1:1)*a*Math.pow(2,o-i)},pg.write=function(e,t,n,i,r,o){var a,s,c,l=8*o-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:o-1,m=i?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[n+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[n+p]=255&a,p+=m,a/=256,l-=8);e[n+p-m]|=128*f}, +var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,i,n)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[i]=n,s=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&a(e,i,t[i]);if(n)for(var i of n(t))o.call(t,i)&&a(e,i,t[i]);return e},c=(e,n)=>t(e,i(n)),l=e=>"symbol"==typeof e?e:e+"";const u={};var d,h,p,m,f,g={},_=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function v(e,t){for(var i in t)e[i]=t[i];return e}function y(e){var t=e.parentNode;t&&t.removeChild(e)}function w(e,t,i){var n,r,o,a=arguments,s={};for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(i=[i],o=3;o0?x(p.type,p.props,p.key,null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(h=v[u])||h&&p.key==h.key&&p.type===h.type)v[u]=void 0;else for(d=0;d3)for(i=[i],o=3;ot.rank?-1:e.index-t.index}function J(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,Y(t).map(Z).join(""));var t}(e),e.props}function Y(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Z(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Q=null,ee=[],te=[],ie={};function ne(){var e;return""+((e=Q&&Q.location?Q.location:Q&&Q.getCurrentLocation?Q.getCurrentLocation():"undefined"!=typeof location?location:ie).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=ee.length;t--;)if(ee[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Q&&Q[t]?Q[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),oe(e)}function oe(e){for(var t=!1,i=0;i0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){ee.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Q&&(this.unlisten=Q.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),ee.splice(ee.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,i){return e.filter(J).sort(X).map((function(e){var n=K(t,e.props.path,e.props);if(n){if(!1!==i){var r={url:t,matches:n};return G(r,n),delete r.ref,delete r.key,H(e,r)}return e}})).filter(Boolean)},t.prototype.render=function(e,t){var i=e.children,n=e.onChange,r=t.url,o=this.getMatchingChildren(D(i),r,!0),a=o[0]||null,s=this.previousUrl;return r!==s&&(this.previousUrl=r,"function"==typeof n&&n({router:this,url:r,previous:s,active:o,current:a})),a},t}(k),he=function(e){return w("a",G({onClick:se},e))};de.subscribers=te,de.getCurrentUrl=ne,de.route=re,de.Router=de,de.Route=function(e){return w(e.component,e)},de.Link=he,de.exec=K;var pe,me,fe,ge=0,_e=[],be=d.__b,ve=d.__r,ye=d.diffed,we=d.__c,xe=d.unmount;function Ne(e,t){d.__h&&d.__h(me,e,ge||t),ge=0;var i=me.__H||(me.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({}),i.__[e]}function ke(e){return ge=1,Ae(je,e)}function Ae(e,t,i){var n=Ne(pe++,2);return n.t=e,n.__c||(n.__=[i?i(t):je(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=me),n.__}function Ce(e,t){var i=Ne(pe++,3);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__H.__h.push(i))}function Oe(e,t){var i=Ne(pe++,4);!d.__s&&$e(i.__H,t)&&(i.__=e,i.__H=t,me.__h.push(i))}function Se(e){return ge=5,Ee((function(){return{current:e}}),[])}function Ee(e,t){var i=Ne(pe++,7);return $e(i.__H,t)&&(i.__=e(),i.__H=t,i.__h=e),i.__}function Fe(e,t){return ge=8,Ee((function(){return e}),t)}function De(e){var t=me.context[e.__c],i=Ne(pe++,9);return i.__c=e,t?(null==i.__&&(i.__=!0,t.sub(me)),t.props.value):e.__}function Be(e){var t=Ne(pe++,10),i=ke();return t.__=e,me.componentDidCatch||(me.componentDidCatch=function(e){t.__&&t.__(e),i[1](e)}),[i[0],function(){i[1](void 0)}]}function Le(){_e.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Te),e.__H.__h.forEach(Re),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),_e=[]}d.__b=function(e){me=null,be&&be(e)},d.__r=function(e){ve&&ve(e),pe=0;var t=(me=e.__c).__H;t&&(t.__h.forEach(Te),t.__h.forEach(Re),t.__h=[])},d.diffed=function(e){ye&&ye(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==_e.push(t)&&fe===d.requestAnimationFrame||((fe=d.requestAnimationFrame)||function(e){var t,i=function(){clearTimeout(n),Me&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);Me&&(t=requestAnimationFrame(i))})(Le)),me=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Te),e.__h=e.__h.filter((function(e){return!e.__||Re(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(i,e.__v)}})),we&&we(e,t)},d.unmount=function(e){xe&&xe(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Te)}catch(i){d.__e(i,t.__v)}};var Me="function"==typeof requestAnimationFrame;function Te(e){var t=me;"function"==typeof e.__c&&e.__c(),me=t}function Re(e){var t=me;e.__c=e.__(),me=t}function $e(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function je(e,t){return"function"==typeof t?t(e):t}var Ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Pe={},ze={},Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.ModelPath=Ue.Path=Ue.relativePath=void 0,Ue.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class We{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new We(this.modelArr.slice(e,t),this.contextArr)}shift(){return new We(this.modelArr.slice(1),this.contextArr)}pop(){return new We(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new We([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new We([...this.modelArr],[...this.contextArr,t])}copy(){return new We([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new He(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,i)=>e===this.modelArr[t+i]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Ue.Path=We;class He extends We{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new He(this.model,super.slice(e,t))}shift(){return new He(this.model,super.shift())}pop(){return new He(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new He(this.model,super.modelPush(e))}contextPush(e){return new He(this.model,super.contextPush(e))}copy(){return new He(this.model,super.copy())}}Ue.ModelPath=He;var qe={};Object.defineProperty(qe,"__esModule",{value:!0}),qe.Errors=void 0;class Ve{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}qe.Errors=Ve;var Ge={};function Ke(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.hexId=Ge.quoteString=Ge.escapeString=void 0,Ge.escapeString=Ke,Ge.quoteString=function(e){return`"${Ke(e)}"`};const Xe=e=>("0"+e.toString(16)).substr(-2);Ge.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Xe).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Je=Ue,Ye=qe,Ze=Ge;class Qe{constructor(e,t){var i,n,r,o;this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50,this.verbose=null!==(n=null==t?void 0:t.verbose)&&void 0!==n&&n,this.wrapLists=null!==(r=null==t?void 0:t.wrapLists)&&void 0!==r&&r,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Qe.wrapLists(a):a,this.listeners=[],this.errors=new Ye.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let n=this.data;e.pop().forEach((e=>{void 0!==n[e]&&"string"!=typeof n[e]&&"number"!=typeof n[e]||(this.wrapLists&&"number"==typeof e?n[e]={node:{},id:Ze.hexId()}:n[e]={}),n=this.wrapLists&&"number"==typeof e?n[e].node:n[e]})),null!==n&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?n.splice(e.last(),1):delete n[e.last()]:this.wrapLists&&"number"==typeof e.last()?n[e.last()]={node:t,id:Ze.hexId()}:n[e.last()]=t,i||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.wrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.unwrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}}ze.DataModel=Qe;var et,tt={};et=tt,Object.defineProperty(et,"__esModule",{value:!0}),et.Keep=et.Opt=et.Has=et.Mod=et.Base=void 0,et.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},et.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),et.Has=(e,t)=>et.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),et.Opt=function(e){return c(s({},e),{optional:()=>!0})},et.Keep=function(e){return c(s({},e),{keep:()=>!0})};var it={};Object.defineProperty(it,"__esModule",{value:!0}),it.BooleanNode=void 0;const nt=ze,rt=tt;it.BooleanNode=()=>c(s({},rt.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?nt.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var n;return(null!==(n=e.boolean)&&void 0!==n?n:e.base).call(e,{node:this},t,...i)}});var ot={},at={};Object.defineProperty(at,"__esModule",{value:!0}),at.ListNode=void 0;const st=ze,ct=tt;at.ListNode=(e,t)=>{var i,n;const r=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,o=null!==(n=null==t?void 0:t.maxLength)&&void 0!==n?n:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},ct.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(r)].map((t=>e.default())):[],navigate(t,i){const n=i+1;return t.getArray().length<=n?this:e.navigate(t,n)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,n,s){if(s.loose&&!Array.isArray(i)&&(i=s.wrapLists?st.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(i))return n.add(t,"error.expected_list"),i;a&&(i.lengtho)?r===o?n.add(t,"error.invalid_list_range.exact",i.length,r):n.add(t,"error.invalid_list_range.between",i.length,r,o):i.lengtho&&n.add(t,"error.invalid_list_range.larger",i.length,o);const c=i.map(((i,r)=>{const o=e.validate(t.push(r),s.wrapLists?i.node:i,n,s);return s.wrapLists?{node:o,id:i.id}:o}));for(const e of Object.getOwnPropertySymbols(i))c[e]=i[e];return c},hook(i,n,...r){var o;return(null!==(o=i.list)&&void 0!==o?o:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},n,...r)}})};var lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.SwitchNode=void 0;const ut=tt;lt.SwitchNode=e=>c(s({},ut.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const n=t+1;return null===(i=this.activeCase(e.slice(0,n)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,n;return null!==(n=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==n?n:e},suggest(t,i){var n,r;return null!==(r=null===(n=this.activeCase(t))||void 0===n?void 0:n.node.suggest(t,i))&&void 0!==r?r:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,i))).reduce(((e,t)=>e.concat(t)))},validate(e,t,i,n){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,n)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const n=(e,t)=>{var i,n;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(n=e.priority)&&void 0!==n?n:0)},r=e.filter((e=>e.match(t))).sort(n);return i&&0===r.length?e.sort(n)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=at,i=lt;e.ChoiceNode=(e,t)=>{const n=i.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},n),{validate(e,t,i,r){let o=n.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,i,r)},hook(i,r,...o){var a;return(null!==(a=i.choice)&&void 0!==a?a:i.base).call(i,{node:this,choices:e,config:null!=t?t:{},switchNode:n},r,...o)}})};const n=i=>(n,r)=>e.ChoiceNode([{type:i,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:t.ListNode(n),change:e=>e?[e]:[]}],r);e.ObjectOrList=n("object"),e.StringOrList=n("string"),e.ObjectOrPreset=(t,i,n)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(n)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=n[e])&&void 0!==t?t:n[Object.keys(n)[0]]}}])}(ot);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.MapNode=void 0;const ht=tt,pt=ze;dt.MapNode=(e,t,i)=>c(s({},ht.Base),{type:()=>"map",default:()=>({}),navigate(e,i){const n=i+1;return e.getArray().length<=n?this:t.navigate(e,n)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,n,r,o){if(o.loose&&"object"!=typeof n&&(n=o.wrapLists?pt.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return r.add(i,"error.expected_object"),n;const a={};Object.keys(n).forEach((s=>{e.validate(i,s,r,o),a[s]=t.validate(i.push(s),n[s],r,o)}));for(const e of Object.getOwnPropertySymbols(n))a[e]=n[e];return a},validationOption(t){var n;return null!==(n=null==i?void 0:i.validation)&&void 0!==n?n:e.validationOption(t.push(""))},hook(n,r,...o){var a;return(null!==(a=n.map)&&void 0!==a?a:n.base).call(n,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...o)}});var mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Pe,i=ze,n=tt;e.NumberNode=e=>{var t,r,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,u=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,d=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},n.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,n,r){return r.loose&&"number"!=typeof t&&(t=r.wrapLists?i.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?n.add(e,"error.expected_number"):a&&!Number.isInteger(t)?n.add(e,"error.expected_integer"):d&&(tu)?n.add(e,"error.invalid_number_range.between",t,l,u):tu&&n.add(e,"error.invalid_number_range.larger",t,u),t},hook(t,i,...n){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:a,min:l,max:u,between:d,config:null!=e?e:{}},i,...n)}})},e.NumberEnum=({integer:i,values:n})=>t.Mod(e.NumberNode({integer:i}),(e=>({validate:(t,i,r,o)=>(i=e.validate(t,i,r,o),n.includes(i)||r.add(t,"error.invalid_number_enum",n.join(", ")),i)})))}(mt);var ft={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=tt,i=Ue,a=qe,u=Ge,d=ze;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(h,p)=>{var m,f;const g=h,{[m=e.Switch]:_,[f=e.Case]:b}=g,v=((e,t)=>{var i={};for(var a in e)r.call(e,a)&&t.indexOf(a)<0&&(i[a]=e[a]);if(null!=e&&n)for(var a of n(e))t.indexOf(a)<0&&o.call(e,a)&&(i[a]=e[a]);return i})(g,[l(m),l(f)]),y=e=>{if(void 0===_)return v;const t=i.relativePath(e,_).get(),n=b[t];return s(s({},v),n)},w=(e,t)=>{var n;const r=_?i.relativePath(e,_).get():void 0,o=_&&null!==(n=b[r])&&void 0!==n?n:{},a=Object.keys(o),s=(null==p?void 0:p.context)?new i.ModelPath(e.getModel(),new i.Path(e.getArray(),[p.context])):e;return(!(null==p?void 0:p.disableSwitchContext)&&r&&a.includes(t)?s.contextPush(r):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==p?void 0:p.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,n=e.getArray();if(n.length<=i)return this;const r=y(e.slice(0,i))[n[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>w(e,t.toString()),suggest(e,t){const i=y(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter((t=>i[t].enabled(e))).filter((e=>!n.includes(e))).map(u.quoteString)},validate(e,t,n,r){if(r.loose&&"object"!=typeof t&&(t=r.wrapLists?d.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let o=v;if(_){const n=i.relativePath(e,_);let c=n.get();if(e.equals(n.pop())){const i=n.last();c=v[i].validate(e.push(i),t[i],new a.Errors,r)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),u=new Set([...l,...Object.keys(t)]),h={};u.forEach((i=>{if(c.includes(i)){if(!o[i].enabled(e))return;const a=o[i].validate(e.push(i),t[i],n,r);!o[i].keep()&&o[i].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete h[i]:(h[i]=a,e.getModel().set(e.push(i),a,!0))}else h[i]=t[i]}));for(const i of Object.getOwnPropertySymbols(t))h[i]=t[i];return h},hook(e,t,...i){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:v,config:null!=p?p:{},filter:_,cases:b,getActiveFields:y,getChildModelPath:w},t,...i)}})}}(ft);var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.Reference=void 0,gt.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,n)=>e.get(t).transform(i,n),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,n){return e.get(t).navigate.bind(this)(i,n)},pathPush(i,n){return e.get(t).pathPush.bind(this)(i,n)},suggest(i,n){return e.get(t).suggest.bind(this)(i,n)},validate(i,n,r,o){return e.get(t).validate.bind(this)(i,n,r,o)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,n,...r){return e.get(t).hook.bind(this)(i,n,...r)},activeCase(i,n){return e.get(t).activeCase.bind(this)(i,n)},canUpdate(i,n){return e.get(t).canUpdate.bind(this)(i,n)},update(i,n){return e.get(t).update.bind(this)(i,n)}});var _t={};Object.defineProperty(_t,"__esModule",{value:!0}),_t.StringNode=void 0;const bt=tt,vt=Ge,yt=ze,wt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},xt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};_t.StringNode=(e,t)=>{const i=()=>{var i,n,r,o;if(wt(t))return"string"==typeof t.enum?null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]:t.enum;if("resource"===(null==t?void 0:t.validator)){if("string"==typeof t.params.pool){if(t.params.requireTag)return null!==(n=null==e?void 0:e.get(`tag/${t.params.pool}`).map((e=>`#${e}`)))&&void 0!==n?n:[];const i=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag&&null!==(r=null==e?void 0:e.get(`tag/${i}`).map((e=>`#${e}`)))&&void 0!==r?r:[],...null!==(o=null==e?void 0:e.get(i))&&void 0!==o?o:[]]}return t.params.pool}return[]};return c(s({},bt.Base),{type:()=>"string",default:()=>"",validate(e,n,r,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?yt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return r.add(e,"error.expected_string"),n;if(xt(t)){if("resource"===t.validator&&n.length>0&&!n.includes(":")&&(n=n.startsWith("#")?"#minecraft:"+n.slice(1):"minecraft:"+n),"resource"===t.validator&&"string"==typeof n){let i=n;if(n.startsWith("#")){if("string"==typeof t.params.pool&&t.params.pool.startsWith("$tag/"))return r.add(e,"error.disallowed_tag_prefix"),n;if(!t.params.allowTag&&!t.params.requireTag)return r.add(e,"error.disallowed_tag"),n;i=i.slice(1)}else if(t.params.requireTag)return r.add(e,"error.expected_tag"),n;if(!i.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return r.add(e,"error.invalid_resource_location"),n}if("resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&n.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return n}if(wt(t)&&t.additional)return n;const a=i();return a.length>0&&!a.includes(n)&&r.add(e,"error.invalid_enum_option",n),n},suggest:()=>i().map(vt.quoteString),validationOption:()=>xt(t)?t:void 0,hook(e,n,...r){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:i,config:t},n,...r)}})};var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0});var kt={};Object.defineProperty(kt,"__esModule",{value:!0}),kt.CollectionRegistry=kt.SchemaRegistry=void 0;kt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};kt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var At={};Object.defineProperty(At,"__esModule",{value:!0}),function(e){var t=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=Ie&&Ie.__exportStar||function(e,i){for(var n in e)"default"===n||i.hasOwnProperty(n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(ze,e),i(Ue,e),i(qe,e),i(tt,e),i(it,e),i(ot,e),i(at,e),i(dt,e),i(mt,e),i(ft,e),i(gt,e),i(_t,e),i(lt,e),i(Nt,e),i(kt,e),i(At,e)}(Pe);var Ct=function(e){return(e=e||{}).circles?function(e){var t=[],i=[];return e.proto?function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Ot(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o}:function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r)if(!1!==Object.hasOwnProperty.call(r,a)){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Ot(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o};function n(e,n){for(var r=Object.keys(e),o=new Array(r.length),a=0;a-1},n=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},r=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},o=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(e){this.pending.push(e),this.flush()},a.prototype.flush=function(){0===this.count&&(this.pending.forEach((function(e){e()})),this.pending=[])};var s=function(e){this.sem=new a,this.sync=e&&e.sync,this.mapForUri=e&&e.cacheGlobally?t:{}};s.prototype.ajax=function(e,t){var i=function(){for(var e=!1,t=0;t/)||_.fetchScript(h));_.sem.whenReady((function(){var e=l(c,g,_.mapForUri,b);t(e)}))}}}.apply(t,n))||(e.exports=r)},function(e,t,i){var n=i(2),r=i(3),o=i(4).ArraySet,a=i(5),s=i(7).quickSort;function c(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new d(t):new l(t)}function l(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sources"),a=n.getArg(t,"names",[]),s=n.getArg(t,"sourceRoot",null),c=n.getArg(t,"sourcesContent",null),l=n.getArg(t,"mappings"),u=n.getArg(t,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);r=r.map(String).map(n.normalize).map((function(e){return s&&n.isAbsolute(s)&&n.isAbsolute(e)?n.relative(s,e):e})),this._names=o.fromArray(a.map(String),!0),this._sources=o.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=c,this._mappings=l,this.file=u}function u(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var i=n.getArg(t,"version"),r=n.getArg(t,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new o,this._names=new o;var a={line:-1,column:0};this._sections=r.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=n.getArg(e,"offset"),i=n.getArg(t,"line"),r=n.getArg(t,"column");if(i=0){var s=this._originalMappings[a];if(void 0===e.column)for(var c=s.originalLine;s&&s.originalLine===c;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)o.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return o},t.SourceMapConsumer=c,l.prototype=Object.create(c.prototype),l.prototype.consumer=c,l.fromSourceMap=function(e){var t=Object.create(l.prototype),i=t._names=o.fromArray(e._names.toArray(),!0),r=t._sources=o.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),c=t.__generatedMappings=[],d=t.__originalMappings=[],h=0,p=a.length;h1&&(i.source=f+o[1],f+=o[1],i.originalLine=p+o[2],p=i.originalLine,i.originalLine+=1,i.originalColumn=m+o[3],m=i.originalColumn,o.length>4&&(i.name=g+o[4],g+=o[4])),x.push(i),"number"==typeof i.originalLine&&w.push(i)}s(x,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=x,s(w,n.compareByOriginalPositions),this.__originalMappings=w},l.prototype._findMapping=function(e,t,i,n,o,a){if(e[i]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[i]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return r.search(e,t,o,a)},l.prototype.computeColumnSpans=function(){for(var e=0;e=0){var r=this._generatedMappings[i];if(r.generatedLine===t.generatedLine){var o=n.getArg(r,"source",null);null!==o&&(o=this._sources.at(o),null!=this.sourceRoot&&(o=n.join(this.sourceRoot,o)));var a=n.getArg(r,"name",null);return null!==a&&(a=this._names.at(a)),{source:o,line:n.getArg(r,"originalLine",null),column:n.getArg(r,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},l.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=n.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var i;if(null!=this.sourceRoot&&(i=n.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==i.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!i.path||"/"==i.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if(null!=this.sourceRoot&&(t=n.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var i={source:t=this._sources.indexOf(t),originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},r=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(r>=0){var o=this._originalMappings[r];if(o.source===i.source)return{line:n.getArg(o,"generatedLine",null),column:n.getArg(o,"generatedColumn",null),lastColumn:n.getArg(o,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=l,d.prototype=Object.create(c.prototype),d.prototype.constructor=c,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t=0;u--)"."===(a=c[u])?c.splice(u,1):".."===a?l++:l>0&&(""===a?(c.splice(u+1,l),l=0):(c.splice(u,2),l--));return""===(i=c.join("/"))&&(i=s?"/":"."),n?(n.path=i,o(n)):i}t.urlParse=r,t.urlGenerate=o,t.normalize=a,t.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var i=r(t),s=r(e);if(s&&(e=s.path||"/"),i&&!i.scheme)return s&&(i.scheme=s.scheme),o(i);if(i||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,o(s);var c="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,o(s)):c},t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(i)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var i=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++i}return Array(i+1).join("../")+t.substr(e.length+1)};var s=!("__proto__"in Object.create(null));function c(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var i=t-10;i>=0;i--)if(36!==e.charCodeAt(i))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}t.toSetString=s?c:function(e){return l(e)?"$"+e:e},t.fromSetString=s?c:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,i){var n=e.source-t.source;return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||i||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:e.name-t.name},t.compareByGeneratedPositionsDeflated=function(e,t,i){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||i||0!=(n=e.source-t.source)||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:e.name-t.name},t.compareByGeneratedPositionsInflated=function(e,t){var i=e.generatedLine-t.generatedLine;return 0!==i||0!=(i=e.generatedColumn-t.generatedColumn)||0!==(i=u(e.source,t.source))||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:u(e.name,t.name)}},function(e,t){function i(e,n,r,o,a,s){var c=Math.floor((n-e)/2)+e,l=a(r,o[c],!0);return 0===l?c:l>0?n-c>1?i(c,n,r,o,a,s):s==t.LEAST_UPPER_BOUND?n1?i(e,c,r,o,a,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,r,o){if(0===n.length)return-1;var a=i(-1,n.length,e,n,r,o||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===r(n[a],n[a-1],!0);)--a;return a}},function(e,t,i){var n=i(2),r=Object.prototype.hasOwnProperty;function o(){this._array=[],this._set=Object.create(null)}o.fromArray=function(e,t){for(var i=new o,n=0,r=e.length;n=0&&e>>=5)>0&&(t|=32),i+=n.encode(t)}while(r>0);return i},t.decode=function(e,t,i){var r,o,a,s,c=e.length,l=0,u=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(o=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(32&o),l+=(o&=31)<>1,1==(1&a)?-s:s),i.rest=t}},function(e,t){var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(Lt);var Mt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Pe,i=Lt;e.initPredicatesSchemas=function(n,r){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,r),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);n.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(i.Range()),durability:t.Opt(i.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(i.Range())},{context:"enchantment"})),n.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(i.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},n.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),n.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:i.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),n.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(i.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(i.Range()),duration:t.Opt(i.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),n.register("distance_predicate",t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range()),absolute:t.Opt(i.Range()),horizontal:t.Opt(i.Range())},{context:"distance"})),n.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",t.ObjectNode({dealt:t.Opt(i.Range()),taken:t.Opt(i.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Mt),Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.initAdvancementSchemas=void 0;const Tt=Pe,Rt=Lt,$t=Mt;Bt.initAdvancementSchemas=function(e,t){const i=Tt.Reference.bind(void 0,e),n=Tt.StringNode.bind(void 0,t);e.register("advancement",Tt.Mod(Tt.ObjectNode({display:Tt.Opt(Tt.Mod(Tt.ObjectNode({icon:Tt.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Tt.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Tt.Opt(n()),frame:Tt.Opt(n({enum:["task","challenge","goal"]})),show_toast:Tt.Opt(Tt.BooleanNode()),announce_to_chat:Tt.Opt(Tt.BooleanNode()),hidden:Tt.Opt(Tt.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Tt.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Tt.MapNode(n(),i("advancement_criteria")),requirements:Tt.Opt(Tt.ListNode(Tt.ListNode(n()))),rewards:Tt.Opt(Tt.ObjectNode({function:Tt.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Tt.Opt(Tt.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Tt.Opt(Tt.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Tt.Opt(Tt.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Tt.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Tt.Opt(Tt.ObjectNode({[Tt.Switch]:["pop",{push:"trigger"}],[Tt.Case]:{"minecraft:bee_nest_destroyed":{block:Tt.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Tt.Opt(Tt.NumberNode({integer:!0})),item:Tt.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:Tt.Opt(i("entity_predicate")),partner:Tt.Opt(i("entity_predicate")),child:Tt.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:Tt.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Tt.Opt(n({enum:"dimension"})),to:Tt.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Tt.Opt(Tt.ListNode(Tt.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:Tt.Opt(Rt.Range())},"minecraft:consume_item":{item:Tt.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Tt.Opt(i("entity_predicate")),zombie:Tt.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:Tt.Opt(Tt.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Tt.Opt(n({validator:"resource",params:{pool:"block"}})),state:Tt.Opt(Tt.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Tt.Opt(Rt.Range()),item:Tt.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Tt.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:Tt.Opt(i("entity_predicate")),killing_blow:Tt.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Tt.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Tt.Opt(i("entity_predicate")),item:Tt.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":$t.LocationFields,"minecraft:inventory_changed":{slots:Tt.Opt(Tt.ObjectNode({empty:Tt.Opt(Rt.Range()),occupied:Tt.Opt(Rt.Range()),full:Tt.Opt(Rt.Range())})),items:Tt.Opt(Tt.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Tt.Opt(Rt.Range()),durability:Tt.Opt(Rt.Range()),item:Tt.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Tt.Opt(Rt.Range()),victims:Tt.Opt(Tt.ListNode(Tt.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:Tt.Opt(Rt.Range()),duration:Tt.Opt(Rt.Range())},"minecraft:location":$t.LocationFields,"minecraft:nether_travel":{distance:Tt.Opt(Rt.Range()),entered:Tt.Opt(i("location_predicate")),exited:Tt.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Tt.Opt(n({validator:"resource",params:{pool:"block"}})),state:Tt.Opt(Tt.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Tt.Opt(i("item_predicate")),location:Tt.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:Tt.Opt(i("damage_predicate")),entity:Tt.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:Tt.Opt(i("entity_predicate")),killing_blow:Tt.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Tt.Opt(Tt.ObjectNode({block:Tt.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Tt.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Tt.Opt(i("item_predicate"))},"minecraft:slept_in_bed":$t.LocationFields,"minecraft:slide_down_block":{block:Tt.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Tt.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:Tt.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:Tt.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:Tt.Opt(Rt.Range())},"minecraft:used_totem":{item:Tt.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Tt.Opt(i("entity_predicate")),item:Tt.Opt(i("item_predicate"))},"minecraft:voluntary_exile":$t.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var jt={},It={};Object.defineProperty(It,"__esModule",{value:!0}),It.initModelSchemas=void 0;const Pt=Pe;It.initModelSchemas=function(e,t){Pt.Reference.bind(void 0,e);const i=Pt.StringNode.bind(void 0,t),n=(e,t,i)=>Pt.ListNode(Pt.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=Pt.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Pt.Mod(Pt.ObjectNode({parent:Pt.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Pt.Opt(Pt.BooleanNode()),gui_light:Pt.Opt(i({enum:"gui_light"})),textures:Pt.Opt(Pt.MapNode(i(),r)),elements:Pt.Opt(Pt.ListNode(Pt.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Pt.Opt(Pt.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:Pt.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Pt.Opt(Pt.BooleanNode())})),shade:Pt.Opt(Pt.BooleanNode()),faces:Pt.MapNode(i({enum:"direction"}),Pt.ObjectNode({texture:r,uv:Pt.Opt(n(4)),cullface:Pt.Opt(i({enum:"direction"})),rotation:Pt.Opt(Pt.NumberNode({integer:!0})),tintindex:Pt.Opt(Pt.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Pt.Opt(Pt.MapNode(i({enum:"display_position"}),Pt.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Pt.Opt(Pt.ListNode(Pt.ObjectNode({predicate:Pt.MapNode(i({enum:"item_model_predicates"}),Pt.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initBlockDefinitionSchemas=void 0;const Ut=Pe;zt.initBlockDefinitionSchemas=function(e,t){const i=Ut.Reference.bind(void 0,e),n=Ut.StringNode.bind(void 0,t);e.register("block_definition",Ut.Mod(Ut.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Ut.ObjectNode({variants:Ut.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Ut.ObjectNode({multipart:Ut.ListNode(Ut.ObjectNode({when:Ut.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Ut.Opt(Ut.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Ut.Opt(Ut.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Ut.Opt(Ut.BooleanNode())};e.register("model_variant",Ut.ChoiceNode([{type:"object",node:Ut.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Ut.ListNode(Ut.ObjectNode(c(s({},r),{weight:Ut.Opt(Ut.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Ut.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Ut.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Ut.ObjectNode({OR:Ut.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(jt,"__esModule",{value:!0}),jt.initAssetsSchemas=void 0;const Wt=It,Ht=zt;jt.initAssetsSchemas=function(e,t){Ht.initBlockDefinitionSchemas(e,t),Wt.initModelSchemas(e,t)};var qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.initConditionSchemas=void 0;const Vt=Pe,Gt=Lt;qt.initConditionSchemas=function(e,t){const i=Vt.Reference.bind(void 0,e),n=Vt.StringNode.bind(void 0,t);e.register("predicate",Vt.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",Vt.Mod(Vt.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Vt.Switch]:[{push:"condition"}],[Vt.Case]:Gt.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Kt={},Xt={};Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.LootFunctions=Xt.LootConditions=Xt.LootCopySources=Xt.LootEntitySources=Xt.LootTableTypes=void 0,Xt.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Xt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Xt.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Kt,"__esModule",{value:!0}),Kt.initLootTableSchemas=void 0;const Jt=Pe,Yt=Xt,Zt=Lt;Kt.initLootTableSchemas=function(e,t){const i=Jt.Reference.bind(void 0,e),n=Jt.StringNode.bind(void 0,t),r={conditions:Jt.Opt(Jt.ListNode(i("loot_condition")))},o=s({functions:Jt.Opt(Jt.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Yt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Jt.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Jt.SwitchNode(r)}const l=a(Yt.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Yt.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Yt.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Yt.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Jt.Mod(Jt.ObjectNode({type:Jt.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Jt.Opt(Jt.ListNode(Jt.Mod(Jt.ObjectNode(s({rolls:Zt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Jt.Opt(Zt.Range({integer:!0})),entries:Jt.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Jt.Opt(Jt.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Jt.Mod(Jt.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0,min:1}),p)),quality:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0}),p)),[Jt.Switch]:[{push:"type"}],[Jt.Case]:{"minecraft:alternatives":s({children:Jt.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Jt.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Jt.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Jt.Opt(Jt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Jt.Mod(Jt.ObjectNode({function:u,[Jt.Switch]:[{push:"function"}],[Jt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Jt.Mod(Jt.ObjectNode({bonusMultiplier:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Jt.ListNode(Jt.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:Jt.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Jt.Opt(Jt.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Zt.Range({allowBinomial:!0}),treasure:Jt.Opt(Jt.BooleanNode())},"minecraft:exploration_map":{destination:Jt.Opt(n({enum:"structure_feature"})),decoration:Jt.Opt(n({enum:"map_decoration"})),zoom:Jt.Opt(Jt.NumberNode({integer:!0})),search_radius:Jt.Opt(Jt.NumberNode({integer:!0})),skip_existing_chunks:Jt.Opt(Jt.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Zt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Zt.Range({bounds:!0}),limit:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Jt.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:Jt.ListNode(i("loot_entry"))},"minecraft:set_count":{count:Zt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Zt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Jt.Opt(d),lore:Jt.ListNode(i("text_component")),replace:Jt.Opt(Jt.BooleanNode())},"minecraft:set_name":{entity:Jt.Opt(d),name:Jt.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Jt.Opt(Jt.ListNode(Jt.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Zt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Jt.Mod(Jt.ObjectNode({condition:l,[Jt.Switch]:[{push:"condition"}],[Jt.Case]:c(s({},Zt.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Jt.MapNode(n({validator:"objective"}),Zt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Jt.Mod(Jt.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Zt.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Jt.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0}),Qt.initPackMcmetaSchemas=void 0;const ei=Pe;Qt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",ei.Mod(ei.ObjectNode({pack:ei.Mod(ei.ObjectNode({pack_format:ei.Mod(ei.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:ei.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var ti={};Object.defineProperty(ti,"__esModule",{value:!0}),ti.initRecipeSchemas=void 0;const ii=Pe;ti.initRecipeSchemas=function(e,t){const i=ii.Reference.bind(void 0,e),n=ii.StringNode.bind(void 0,t);e.register("recipe",ii.Mod(ii.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[ii.Switch]:[{push:"type"}],[ii.Case]:{"minecraft:crafting_shaped":{group:ii.Opt(n({enum:"recipe_group",additional:!0})),pattern:ii.ListNode(n()),key:ii.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:ii.Opt(n()),ingredients:ii.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:ii.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:ii.Opt(ii.NumberNode()),cookingtime:ii.Opt(ii.Mod(ii.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:ii.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:ii.Opt(ii.NumberNode()),cookingtime:ii.Opt(ii.Mod(ii.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:ii.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:ii.Opt(ii.NumberNode()),cookingtime:ii.Opt(ii.Mod(ii.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:ii.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:ii.Opt(ii.NumberNode()),cookingtime:ii.Opt(ii.Mod(ii.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:ii.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:ii.NumberNode({integer:!0})},"minecraft:smithing":{group:ii.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",ii.Mod(ii.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:ii.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",ii.Mod(ii.ObjectNode({item:ii.Opt(n({validator:"resource",params:{pool:"item"}})),tag:ii.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",ii.Mod(ii.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:ii.Opt(ii.Mod(ii.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initTagsSchemas=void 0;const ri=Pe;ni.initTagsSchemas=function(e,t){const i=ri.StringNode.bind(void 0,t),n=e=>ri.Mod(ri.ObjectNode({replace:ri.Opt(ri.BooleanNode()),values:ri.ListNode(ri.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:ri.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:ri.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initTextComponentSchemas=void 0;const ai=Pe;oi.initTextComponentSchemas=function(e,t){const i=ai.Reference.bind(void 0,e),n=ai.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",ai.Mod(ai.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:ai.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ai.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:ai.Opt(ai.BooleanNode()),italic:ai.Opt(ai.BooleanNode()),underlined:ai.Opt(ai.BooleanNode()),strikethrough:ai.Opt(ai.BooleanNode()),obfuscated:ai.Opt(ai.BooleanNode()),insertion:ai.Opt(n()),clickEvent:ai.Opt(ai.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ai.Switch]:[{push:"action"}],[ai.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ai.Opt(ai.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[ai.Switch]:[{push:"action"}],[ai.Case]:{show_text:{value:ai.Opt(i("text_component"))},show_item:{value:ai.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:ai.Opt(ai.ObjectNode({name:ai.Opt(n()),type:ai.Opt(n()),id:ai.Opt(n())}))}}})),extra:ai.Opt(i("text_component_list"))};e.register("text_component_object",ai.Mod(ai.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ai.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ai.ObjectNode(s({translate:n(),with:ai.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ai.ObjectNode(s({score:ai.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:ai.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ai.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ai.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ai.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:ai.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ai.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ai.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:ai.Opt(ai.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ai.Mod(ai.ListNode(i("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.initSchemas=void 0;const si=Bt,ci=jt,li=Lt,ui=qt,di=Kt,hi=Qt,pi=Mt,mi=ti,fi=ni,gi=oi;Dt.initSchemas=function(e,t){li.initCommonSchemas(e,t),pi.initPredicatesSchemas(e,t),si.initAdvancementSchemas(e,t),ci.initAssetsSchemas(e,t),ui.initConditionSchemas(e,t),di.initLootTableSchemas(e,t),hi.initPackMcmetaSchemas(e,t),mi.initRecipeSchemas(e,t),fi.initTagsSchemas(e,t),gi.initTextComponentSchemas(e,t)};var _i=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),bi=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),vi=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&_i(t,e,i);return bi(t,e),t};Object.defineProperty(Et,"__esModule",{value:!0});var yi=Et.getSchemas=Et.getCollections=void 0;const wi=Pe,xi=Ft,Ni=Dt;var ki=Et.lootContext=vi(Xt);var Ai=Et.getCollections=function(){const e=new wi.CollectionRegistry;return xi.initCollections(e),e};yi=Et.getSchemas=function(e){const t=new wi.SchemaRegistry;return Ni.initSchemas(t,e),t};var Ci=Object.freeze(Object.assign(Object.create(null),Et,{[Symbol.toStringTag]:"Module",get getSchemas(){return yi},get getCollections(){return Ai},lootContext:ki,default:Et})),Oi={},Si={};Object.defineProperty(Si,"__esModule",{value:!0}),Si.initCollections=void 0,Si.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var Ei={},Fi={},Di={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Di),Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.initAdvancementSchemas=void 0;const Bi=Pe,Li=Di;Fi.initAdvancementSchemas=function(e,t){const i=Bi.Reference.bind(void 0,e),n=Bi.StringNode.bind(void 0,t),r=Bi.ChoiceNode([{type:"object",node:Bi.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:Bi.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Bi.Mod(Bi.ObjectNode({display:Bi.Opt(Bi.Mod(Bi.ObjectNode({icon:Bi.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Bi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Bi.Opt(n()),frame:Bi.Opt(n({enum:["task","challenge","goal"]})),show_toast:Bi.Opt(Bi.BooleanNode()),announce_to_chat:Bi.Opt(Bi.BooleanNode()),hidden:Bi.Opt(Bi.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Bi.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Bi.MapNode(n(),i("advancement_criteria")),requirements:Bi.Opt(Bi.ListNode(Bi.ListNode(n()))),rewards:Bi.Opt(Bi.ObjectNode({function:Bi.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Bi.Opt(Bi.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Bi.Opt(Bi.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Bi.Opt(Bi.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Bi.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Bi.Opt(Bi.ObjectNode({player:Bi.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Bi.Switch]:["pop",{push:"trigger"}],[Bi.Case]:{"minecraft:bee_nest_destroyed":{block:Bi.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Bi.Opt(Bi.NumberNode({integer:!0})),item:Bi.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:Bi.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Bi.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Bi.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Bi.Opt(Bi.ListNode(r))},"minecraft:construct_beacon":{level:Bi.Opt(Li.Range())},"minecraft:consume_item":{item:Bi.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:Bi.Opt(Bi.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Bi.Opt(n({validator:"resource",params:{pool:"block"}})),state:Bi.Opt(Bi.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Bi.Opt(Li.Range()),item:Bi.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Bi.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:Bi.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Bi.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:Bi.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:Bi.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:Bi.Opt(Bi.ObjectNode({empty:Bi.Opt(Li.Range()),occupied:Bi.Opt(Li.Range()),full:Bi.Opt(Li.Range())})),items:Bi.Opt(Bi.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Bi.Opt(Li.Range()),durability:Bi.Opt(Li.Range()),item:Bi.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:Bi.Opt(i("item_predicate")),location:Bi.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Bi.Opt(Li.Range()),victims:Bi.Opt(Bi.ListNode(r))},"minecraft:levitation":{distance:Bi.Opt(Li.Range()),duration:Bi.Opt(Li.Range())},"minecraft:location":{location:Bi.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:Bi.Opt(Li.Range()),entered:Bi.Opt(i("location_predicate")),exited:Bi.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Bi.Opt(n({validator:"resource",params:{pool:"block"}})),state:Bi.Opt(Bi.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Bi.Opt(i("item_predicate")),location:Bi.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Bi.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:Bi.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:Bi.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Bi.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:Bi.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Bi.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:Bi.Opt(Li.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Bi.Opt(i("entity_predicate")),item:Bi.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:Bi.Opt(Li.Range())},"minecraft:used_totem":{item:Bi.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Bi.Opt(i("entity_predicate")),item:Bi.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Mi={},Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.initModelSchemas=void 0;const Ri=Pe;Ti.initModelSchemas=function(e,t){Ri.Reference.bind(void 0,e);const i=Ri.StringNode.bind(void 0,t),n=(e,t,i)=>Ri.ListNode(Ri.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=Ri.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Ri.Mod(Ri.ObjectNode({parent:Ri.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Ri.Opt(Ri.BooleanNode()),gui_light:Ri.Opt(i({enum:"gui_light"})),textures:Ri.Opt(Ri.MapNode(i(),r)),elements:Ri.Opt(Ri.ListNode(Ri.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Ri.Opt(Ri.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:Ri.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Ri.Opt(Ri.BooleanNode())})),shade:Ri.Opt(Ri.BooleanNode()),faces:Ri.MapNode(i({enum:"direction"}),Ri.ObjectNode({texture:r,uv:Ri.Opt(n(4)),cullface:Ri.Opt(i({enum:"direction"})),rotation:Ri.Opt(Ri.NumberNode({integer:!0})),tintindex:Ri.Opt(Ri.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Ri.Opt(Ri.MapNode(i({enum:"display_position"}),Ri.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Ri.Opt(Ri.ListNode(Ri.ObjectNode({predicate:Ri.MapNode(i({enum:"item_model_predicates"}),Ri.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var $i={};Object.defineProperty($i,"__esModule",{value:!0}),$i.initBlockDefinitionSchemas=void 0;const ji=Pe;$i.initBlockDefinitionSchemas=function(e,t){const i=ji.Reference.bind(void 0,e),n=ji.StringNode.bind(void 0,t);e.register("block_definition",ji.Mod(ji.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:ji.ObjectNode({variants:ji.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:ji.ObjectNode({multipart:ji.ListNode(ji.ObjectNode({when:ji.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:ji.Opt(ji.NumberEnum({integer:!0,values:[0,90,180,270]})),y:ji.Opt(ji.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:ji.Opt(ji.BooleanNode())};e.register("model_variant",ji.ChoiceNode([{type:"object",node:ji.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:ji.ListNode(ji.ObjectNode(c(s({},r),{weight:ji.Opt(ji.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",ji.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:ji.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:ji.ObjectNode({OR:ji.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Mi,"__esModule",{value:!0}),Mi.initAssetsSchemas=void 0;const Ii=Ti,Pi=$i;Mi.initAssetsSchemas=function(e,t){Pi.initBlockDefinitionSchemas(e,t),Ii.initModelSchemas(e,t)};var zi={};Object.defineProperty(zi,"__esModule",{value:!0}),zi.initConditionSchemas=void 0;const Ui=Pe,Wi=Di;zi.initConditionSchemas=function(e,t){const i=Ui.Reference.bind(void 0,e),n=Ui.StringNode.bind(void 0,t);e.register("predicate",Ui.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",Ui.Mod(Ui.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ui.Switch]:[{push:"condition"}],[Ui.Case]:Wi.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Hi={};Object.defineProperty(Hi,"__esModule",{value:!0}),Hi.initDimensionSchemas=void 0;const qi=Pe,Vi=Di;Hi.initDimensionSchemas=function(e,t){const i=qi.Reference.bind(void 0,e),n=qi.StringNode.bind(void 0,t),r=e=>qi.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",qi.Mod(qi.ObjectNode({type:Vi.DimensionTypePresets(i("dimension_type")),generator:qi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[qi.Switch]:[{push:"type"}],[qi.Case]:{"minecraft:noise":{seed:qi.NumberNode({integer:!0}),settings:Vi.NoiseSettingsPresets(i("noise_settings")),biome_source:qi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[qi.Switch]:[{push:"type"}],[qi.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:qi.NumberNode({integer:!0}),preset:qi.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(qi.Mod(qi.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:qi.Opt(qi.NumberNode({integer:!0,min:0,max:62})),biomes:qi.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:qi.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:qi.NumberNode({integer:!0}),large_biomes:qi.Opt(qi.BooleanNode()),legacy_biome_init_layer:qi.Opt(qi.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:qi.ObjectNode({biome:qi.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:qi.Opt(qi.BooleanNode()),features:qi.Opt(qi.BooleanNode()),layers:qi.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",qi.Mod(qi.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:qi.ObjectNode({altitude:qi.NumberNode(),temperature:qi.NumberNode(),humidity:qi.NumberNode(),weirdness:qi.NumberNode(),offset:qi.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",qi.Mod(qi.ObjectNode({firstOctave:qi.NumberNode({integer:!0}),amplitudes:qi.ListNode(qi.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Gi={};Object.defineProperty(Gi,"__esModule",{value:!0}),Gi.initDimensionTypeSchemas=void 0;const Ki=Pe,Xi=Di;Gi.initDimensionTypeSchemas=function(e,t){const i=Ki.StringNode.bind(void 0,t);e.register("dimension_type",Ki.Mod(Ki.ObjectNode({name:Ki.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Ki.BooleanNode(),natural:Ki.BooleanNode(),piglin_safe:Ki.BooleanNode(),respawn_anchor_works:Ki.BooleanNode(),bed_works:Ki.BooleanNode(),has_raids:Ki.BooleanNode(),has_skylight:Ki.BooleanNode(),has_ceiling:Ki.BooleanNode(),coordinate_scale:Ki.NumberNode({min:1e-5,max:3e7}),ambient_light:Ki.NumberNode(),fixed_time:Ki.Opt(Ki.NumberNode({integer:!0})),logical_height:Ki.NumberNode({integer:!0,min:0,max:256}),effects:Ki.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Xi.DefaultDimensionType}))};var Ji={},Yi={};Object.defineProperty(Yi,"__esModule",{value:!0}),Yi.LootFunctions=Yi.LootConditions=Yi.LootCopySources=Yi.LootEntitySources=Yi.LootTableTypes=void 0,Yi.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Yi.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yi.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Yi.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Yi.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ji,"__esModule",{value:!0}),Ji.initLootTableSchemas=void 0;const Zi=Pe,Qi=Yi,en=Di;Ji.initLootTableSchemas=function(e,t){const i=Zi.Reference.bind(void 0,e),n=Zi.StringNode.bind(void 0,t),r={conditions:Zi.Opt(Zi.ListNode(i("loot_condition")))},o=s({functions:Zi.Opt(Zi.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Qi.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Zi.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Zi.SwitchNode(r)}const l=a(Qi.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Qi.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Qi.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Qi.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Zi.Mod(Zi.ObjectNode({type:Zi.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Zi.Opt(Zi.ListNode(Zi.Mod(Zi.ObjectNode(s({rolls:en.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Zi.Opt(en.Range({integer:!0})),entries:Zi.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Zi.Opt(Zi.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Zi.Mod(Zi.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Zi.Opt(Zi.Mod(Zi.NumberNode({integer:!0,min:1}),p)),quality:Zi.Opt(Zi.Mod(Zi.NumberNode({integer:!0}),p)),[Zi.Switch]:[{push:"type"}],[Zi.Case]:{"minecraft:alternatives":s({children:Zi.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Zi.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Zi.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Zi.Opt(Zi.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Zi.Mod(Zi.ObjectNode({function:u,[Zi.Switch]:[{push:"function"}],[Zi.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Zi.Mod(Zi.ObjectNode({bonusMultiplier:Zi.Mod(Zi.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Zi.Mod(Zi.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Zi.Mod(Zi.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Zi.ListNode(Zi.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:Zi.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Zi.Opt(Zi.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:en.Range({allowBinomial:!0}),treasure:Zi.Opt(Zi.BooleanNode())},"minecraft:exploration_map":{destination:Zi.Opt(n({enum:"map_feature"})),decoration:Zi.Opt(n({enum:"map_decoration"})),zoom:Zi.Opt(Zi.NumberNode({integer:!0})),search_radius:Zi.Opt(Zi.NumberNode({integer:!0})),skip_existing_chunks:Zi.Opt(Zi.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:en.Range({bounds:!0})},"minecraft:looting_enchant":{count:en.Range({bounds:!0}),limit:Zi.Opt(Zi.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Zi.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:Zi.ListNode(i("loot_entry"))},"minecraft:set_count":{count:en.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:en.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Zi.Opt(Zi.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Zi.Opt(d),lore:Zi.ListNode(i("text_component")),replace:Zi.Opt(Zi.BooleanNode())},"minecraft:set_name":{entity:Zi.Opt(d),name:Zi.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Zi.Opt(Zi.ListNode(Zi.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:en.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Zi.Mod(Zi.ObjectNode({condition:l,[Zi.Switch]:[{push:"condition"}],[Zi.Case]:c(s({},en.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Zi.MapNode(n({validator:"objective"}),en.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Zi.Mod(Zi.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:en.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Zi.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initPackMcmetaSchemas=void 0;const nn=Pe;tn.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",nn.Mod(nn.ObjectNode({pack:nn.Mod(nn.ObjectNode({pack_format:nn.Mod(nn.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:nn.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initPredicatesSchemas=void 0;const on=Pe,an=Di;rn.initPredicatesSchemas=function(e,t){const i=on.Reference.bind(void 0,e),n=on.StringNode.bind(void 0,t),r=on.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:on.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:on.ObjectNode({min:on.Opt(on.NumberNode({integer:!0})),max:on.Opt(on.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:on.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",on.ObjectNode({item:on.Opt(n({validator:"resource",params:{pool:"item"}})),tag:on.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:on.Opt(an.Range()),durability:on.Opt(an.Range()),potion:on.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:on.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:on.Opt(on.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",on.ObjectNode({enchantment:on.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:on.Opt(an.Range())},{context:"enchantment"})),e.register("block_predicate",on.ObjectNode({block:on.Opt(n({validator:"resource",params:{pool:"block"}})),tag:on.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:on.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:on.Opt(on.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",on.ObjectNode({fluid:on.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:on.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:on.Opt(on.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",on.ObjectNode({position:on.Opt(on.ObjectNode({x:on.Opt(an.Range()),y:on.Opt(an.Range()),z:on.Opt(an.Range())})),biome:on.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:on.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:on.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:on.Opt(on.ObjectNode({light:on.Opt(an.Range({integer:!0,min:0,max:15}))})),smokey:on.Opt(on.BooleanNode()),block:on.Opt(i("block_predicate")),fluid:on.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",on.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:an.Range(),[on.Switch]:[{push:"type"}],[on.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",on.ObjectNode({gamemode:on.Opt(n({enum:"gamemode"})),level:on.Opt(an.Range()),advancements:on.Opt(on.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),on.ChoiceNode([{type:"boolean",node:on.BooleanNode(),change:e=>!0},{type:"object",node:on.MapNode(n(),on.BooleanNode())}]))),recipes:on.Opt(on.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),on.BooleanNode())),stats:on.Opt(on.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",on.ObjectNode({amplifier:on.Opt(an.Range()),duration:on.Opt(an.Range()),ambient:on.Opt(on.BooleanNode()),visible:on.Opt(on.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",on.ObjectNode({x:on.Opt(an.Range()),y:on.Opt(an.Range()),z:on.Opt(an.Range()),absolute:on.Opt(an.Range()),horizontal:on.Opt(an.Range())},{context:"distance"})),e.register("entity_predicate",on.ObjectNode({type:on.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:on.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:on.Opt(n({validator:"team"})),location:on.Opt(i("location_predicate")),distance:on.Opt(i("distance_predicate")),flags:on.Opt(on.ObjectNode({is_on_fire:on.Opt(on.BooleanNode()),is_sneaking:on.Opt(on.BooleanNode()),is_sprinting:on.Opt(on.BooleanNode()),is_swimming:on.Opt(on.BooleanNode()),is_baby:on.Opt(on.BooleanNode())})),equipment:on.Opt(on.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:on.Opt(i("entity_predicate")),targeted_entity:on.Opt(i("entity_predicate")),player:on.Opt(i("player_predicate")),fishing_hook:on.Opt(on.ObjectNode({in_open_water:on.Opt(on.BooleanNode())})),effects:on.Opt(on.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",on.ObjectNode({is_explosion:on.Opt(on.BooleanNode()),is_fire:on.Opt(on.BooleanNode()),is_magic:on.Opt(on.BooleanNode()),is_projectile:on.Opt(on.BooleanNode()),is_lightning:on.Opt(on.BooleanNode()),bypasses_armor:on.Opt(on.BooleanNode()),bypasses_invulnerability:on.Opt(on.BooleanNode()),bypasses_magic:on.Opt(on.BooleanNode()),source_entity:on.Opt(i("entity_predicate")),direct_entity:on.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",on.ObjectNode({dealt:on.Opt(an.Range()),taken:on.Opt(an.Range()),blocked:on.Opt(on.BooleanNode()),source_entity:on.Opt(i("entity_predicate")),type:on.Opt(i("damage_source_predicate"))},{context:"damage"}))};var sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.initRecipeSchemas=void 0;const cn=Pe;sn.initRecipeSchemas=function(e,t){const i=cn.Reference.bind(void 0,e),n=cn.StringNode.bind(void 0,t);e.register("recipe",cn.Mod(cn.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[cn.Switch]:[{push:"type"}],[cn.Case]:{"minecraft:crafting_shaped":{group:cn.Opt(n({enum:"recipe_group",additional:!0})),pattern:cn.ListNode(n()),key:cn.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:cn.Opt(n()),ingredients:cn.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:cn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:cn.Opt(cn.NumberNode()),cookingtime:cn.Opt(cn.Mod(cn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:cn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:cn.Opt(cn.NumberNode()),cookingtime:cn.Opt(cn.Mod(cn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:cn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:cn.Opt(cn.NumberNode()),cookingtime:cn.Opt(cn.Mod(cn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:cn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:cn.Opt(cn.NumberNode()),cookingtime:cn.Opt(cn.Mod(cn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:cn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:cn.NumberNode({integer:!0})},"minecraft:smithing":{group:cn.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",cn.Mod(cn.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:cn.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",cn.Mod(cn.ObjectNode({item:cn.Opt(n({validator:"resource",params:{pool:"item"}})),tag:cn.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",cn.Mod(cn.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:cn.Opt(cn.Mod(cn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initTagsSchemas=void 0;const un=Pe;ln.initTagsSchemas=function(e,t){const i=un.StringNode.bind(void 0,t),n=e=>un.Mod(un.ObjectNode({replace:un.Opt(un.BooleanNode()),values:un.ListNode(un.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:un.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:un.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initTextComponentSchemas=void 0;const hn=Pe;dn.initTextComponentSchemas=function(e,t){const i=hn.Reference.bind(void 0,e),n=hn.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",hn.Mod(hn.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:hn.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:hn.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:hn.Opt(n()),font:hn.Opt(n()),bold:hn.Opt(hn.BooleanNode()),italic:hn.Opt(hn.BooleanNode()),underlined:hn.Opt(hn.BooleanNode()),strikethrough:hn.Opt(hn.BooleanNode()),obfuscated:hn.Opt(hn.BooleanNode()),insertion:hn.Opt(n()),clickEvent:hn.Opt(hn.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[hn.Switch]:[{push:"action"}],[hn.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:hn.Opt(hn.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[hn.Switch]:[{push:"action"}],[hn.Case]:{show_text:{value:hn.Opt(i("text_component")),contents:hn.Opt(i("text_component"))},show_item:{value:hn.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:hn.Opt(hn.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:hn.Opt(hn.NumberNode({integer:!0})),tag:hn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:hn.Opt(hn.ObjectNode({name:hn.Opt(n()),type:hn.Opt(n()),id:hn.Opt(n())})),contents:hn.Opt(hn.Mod(hn.ObjectNode({name:hn.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:hn.Opt(i("text_component_list"))};e.register("text_component_object",hn.Mod(hn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:hn.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:hn.ObjectNode(s({translate:n(),with:hn.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:hn.ObjectNode(s({score:hn.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:hn.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:hn.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:hn.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:hn.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:hn.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:hn.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:hn.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:hn.Opt(hn.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",hn.Mod(hn.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var pn={},mn={};Object.defineProperty(mn,"__esModule",{value:!0}),mn.initBiomeSchemas=void 0;const fn=Pe;mn.initBiomeSchemas=function(e,t){const i=fn.StringNode.bind(void 0,t);e.register("biome",fn.Mod(fn.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:fn.NumberNode(),scale:fn.NumberNode(),temperature:fn.NumberNode(),downfall:fn.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:fn.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:fn.Opt(fn.BooleanNode()),creature_spawn_probability:fn.Opt(fn.NumberNode({min:0,max:1})),effects:fn.ObjectNode({sky_color:fn.NumberNode({color:!0}),fog_color:fn.NumberNode({color:!0}),water_color:fn.NumberNode({color:!0}),water_fog_color:fn.NumberNode({color:!0}),grass_color:fn.Opt(fn.NumberNode({color:!0})),foliage_color:fn.Opt(fn.NumberNode({color:!0})),grass_color_modifier:fn.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:fn.Opt(i()),mood_sound:fn.Opt(fn.ObjectNode({sound:i(),tick_delay:fn.NumberNode({integer:!0}),block_search_extent:fn.NumberNode({integer:!0}),offset:fn.NumberNode()})),additions_sound:fn.Opt(fn.ObjectNode({sound:i(),tick_chance:fn.NumberNode({min:0,max:1})})),music:fn.Opt(fn.ObjectNode({sound:i(),min_delay:fn.NumberNode({integer:!0,min:0}),max_delay:fn.NumberNode({integer:!0,min:0}),replace_current_music:fn.BooleanNode()})),particle:fn.Opt(fn.ObjectNode({options:fn.ObjectNode({type:i()}),probability:fn.NumberNode({min:0,max:1})}))}),starts:fn.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:fn.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),fn.Mod(fn.ListNode(fn.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:fn.NumberNode({integer:!0}),minCount:fn.NumberNode({integer:!0}),maxCount:fn.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:fn.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),fn.Mod(fn.ObjectNode({energy_budget:fn.NumberNode(),charge:fn.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:fn.MapNode(i({enum:["air","liquid"]}),fn.Mod(fn.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:fn.ListNode(fn.Mod(fn.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.initCarverSchemas=void 0;const _n=Pe;gn.initCarverSchemas=function(e,t){const i=_n.StringNode.bind(void 0,t);e.register("configured_carver",_n.Mod(_n.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:_n.ObjectNode({probability:_n.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var bn={};Object.defineProperty(bn,"__esModule",{value:!0}),bn.initDecoratorSchemas=void 0;const vn=Pe,yn=Di;bn.initDecoratorSchemas=function(e,t){const i=vn.Reference.bind(void 0,e),n=vn.StringNode.bind(void 0,t),r={maximum:vn.NumberNode({integer:!0}),bottom_offset:vn.NumberNode({integer:!0}),top_offset:vn.NumberNode({integer:!0})},o={chance:vn.NumberNode({integer:!0,min:0})},a={count:yn.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:vn.ObjectNode({[vn.Switch]:["pop",{push:"type"}],[vn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:vn.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:vn.NumberNode({integer:!0}),extra_count:vn.NumberNode({integer:!0}),extra_chance:vn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:vn.NumberNode(),below_noise:vn.NumberNode({integer:!0}),above_noise:vn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:vn.NumberNode({integer:!0}),noise_factor:vn.NumberNode(),noise_offset:vn.Opt(vn.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:vn.NumberNode({integer:!0}),spread:vn.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":r,"minecraft:range_biased":r,"minecraft:range_very_biased":r,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var wn={},xn={};Object.defineProperty(xn,"__esModule",{value:!0}),xn.initProcessorListSchemas=void 0;const Nn=Pe;xn.initProcessorListSchemas=function(e,t){const i=Nn.Reference.bind(void 0,e),n=Nn.StringNode.bind(void 0,t);e.register("processor_list",Nn.Mod(Nn.ObjectNode({processors:Nn.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Nn.Mod(Nn.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Nn.Switch]:[{push:"processor_type"}],[Nn.Case]:{"minecraft:block_age":{mossiness:Nn.NumberNode()},"minecraft:block_ignore":{blocks:Nn.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:Nn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Nn.NumberNode({integer:!0})},"minecraft:rule":{rules:Nn.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Nn.Mod(Nn.ObjectNode({position_predicate:Nn.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:Nn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:Nn.NumberNode({min:0,max:255,integer:!0}),max_dist:Nn.NumberNode({min:0,max:255,integer:!0}),min_chance:Nn.NumberNode({min:0,max:1}),max_chance:Nn.NumberNode({min:0,max:1})};e.register("pos_rule_test",Nn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Nn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:Nn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:Nn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(wn,"__esModule",{value:!0}),wn.initFeatureSchemas=void 0;const kn=Pe,An=Di;wn.initFeatureSchemas=function(e,t){const i=kn.Reference.bind(void 0,e),n=kn.StringNode.bind(void 0,t),r={can_replace:kn.BooleanNode(),project:kn.BooleanNode(),need_water:kn.BooleanNode(),xspread:kn.NumberNode({integer:!0}),yspread:kn.NumberNode({integer:!0}),zspread:kn.NumberNode({integer:!0}),tries:kn.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:kn.ListNode(i("block_state")),blacklist:kn.ListNode(i("block_state"))},o={state:i("block_state"),radius:An.UniformInt({min:0,max:4,maxSpread:4}),half_height:kn.NumberNode({integer:!0,min:0,max:4}),targets:kn.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:kn.Opt(kn.NumberNode({integer:!0}))},s={state:i("block_state"),size:kn.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},c={count:An.UniformInt({min:-10,max:128,maxSpread:128})},l=kn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",kn.Mod(kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:kn.ObjectNode({[kn.Switch]:["pop",{push:"type"}],[kn.Case]:{"minecraft:bamboo":{probability:kn.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:An.UniformInt({min:0,max:2,maxSpread:1}),height:An.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:An.UniformInt({min:0,max:8,maxSpread:8}),rim_size:An.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:kn.BooleanNode(),exit:kn.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:kn.Opt(kn.BooleanNode()),crystal_beam_target:kn.Opt(i("block_pos")),spikes:kn.ListNode(kn.ObjectNode({centerX:kn.Opt(kn.NumberNode({integer:!0})),centerZ:kn.Opt(kn.NumberNode({integer:!0})),radius:kn.Opt(kn.NumberNode({integer:!0})),height:kn.Opt(kn.NumberNode({integer:!0})),guarded:kn.Opt(kn.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:kn.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:kn.Opt(kn.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:An.UniformInt()},"minecraft:no_bonemeal_flower":r,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:kn.ListNode(kn.ObjectNode({chance:kn.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:kn.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:kn.ListNode(i("block_state")),place_in:kn.ListNode(i("block_state")),place_under:kn.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:kn.ListNode(l)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:kn.NumberNode({integer:!0}),hole_count:kn.NumberNode({integer:!0}),requires_block_below:kn.BooleanNode(),valid_blocks:kn.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:kn.NumberNode({integer:!0}),ignore_vines:kn.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:kn.NumberNode({integer:!0,min:0,max:32}),height_rand_a:kn.NumberNode({integer:!0,min:0,max:24}),height_rand_b:kn.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:An.UniformInt({min:0,max:8,maxSpread:8}),offset:An.UniformInt({min:0,max:8,maxSpread:8}),[kn.Switch]:[{push:"type"}],[kn.Case]:{"minecraft:blob_foliage_placer":{height:kn.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:kn.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:kn.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:kn.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:An.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:An.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:An.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:kn.ListNode(kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[kn.Switch]:[{push:"type"}],[kn.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:kn.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:kn.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",kn.Mod(kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:kn.Opt(kn.NumberNode({min:0,max:80})),[kn.Switch]:[{push:"type"}],[kn.Case]:{"minecraft:two_layers_feature_size":{limit:kn.Opt(kn.NumberNode({integer:!0,min:0,max:81})),lower_size:kn.Opt(kn.NumberNode({integer:!0,min:0,max:16})),upper_size:kn.Opt(kn.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:kn.Opt(kn.NumberNode({integer:!0,min:0,max:80})),upper_limit:kn.Opt(kn.NumberNode({integer:!0,min:0,max:80})),lower_size:kn.Opt(kn.NumberNode({integer:!0,min:0,max:16})),middle_size:kn.Opt(kn.NumberNode({integer:!0,min:0,max:16})),upper_size:kn.Opt(kn.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",kn.Mod(kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[kn.Switch]:[{push:"type"}],[kn.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:kn.ListNode(kn.Mod(kn.ObjectNode({weight:kn.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",kn.Mod(kn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[kn.Switch]:[{push:"type"}],[kn.Case]:{"minecraft:column_placer":{min_size:kn.NumberNode({integer:!0}),extra_size:kn.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Cn={};Object.defineProperty(Cn,"__esModule",{value:!0}),Cn.initNoiseSettingsSchemas=void 0;const On=Pe,Sn=Di;Cn.initNoiseSettingsSchemas=function(e,t){const i=On.Reference.bind(void 0,e),n=On.StringNode.bind(void 0,t);e.register("noise_settings",On.Mod(On.ObjectNode({name:On.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:On.NumberNode({integer:!0}),bedrock_floor_position:On.NumberNode({integer:!0}),sea_level:On.NumberNode({integer:!0}),disable_mob_generation:On.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:On.ObjectNode({height:On.NumberNode({integer:!0}),density_factor:On.NumberNode(),density_offset:On.NumberNode(),size_horizontal:On.NumberNode({integer:!0}),size_vertical:On.NumberNode({integer:!0}),simplex_surface_noise:On.BooleanNode(),random_density_offset:On.Opt(On.BooleanNode()),island_noise_override:On.Opt(On.BooleanNode()),amplified:On.Opt(On.BooleanNode()),sampling:On.ObjectNode({xz_scale:On.NumberNode(),y_scale:On.NumberNode(),xz_factor:On.NumberNode(),y_factor:On.NumberNode()}),bottom_slide:On.ObjectNode({target:On.NumberNode({integer:!0}),size:On.NumberNode({integer:!0}),offset:On.NumberNode({integer:!0})}),top_slide:On.ObjectNode({target:On.NumberNode({integer:!0}),size:On.NumberNode({integer:!0}),offset:On.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>Sn.DefaultNoiseSettings})),e.register("generator_structures",On.ObjectNode({stronghold:On.Opt(On.ObjectNode({distance:On.NumberNode({integer:!0,min:0,max:1023}),spread:On.NumberNode({integer:!0,min:0,max:1023}),count:On.NumberNode({integer:!0,min:1,max:4095})})),structures:On.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),On.Mod(On.ObjectNode({spacing:On.NumberNode({integer:!0,min:0,max:4096}),separation:On.Mod(On.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:On.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",On.Mod(On.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:On.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var En={};Object.defineProperty(En,"__esModule",{value:!0}),En.initStructureFeatureSchemas=void 0;const Fn=Pe;En.initStructureFeatureSchemas=function(e,t){const i=Fn.StringNode.bind(void 0,t),n={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Fn.NumberNode({integer:!0})};e.register("configured_structure_feature",Fn.Mod(Fn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Fn.ObjectNode({[Fn.Switch]:["pop",{push:"type"}],[Fn.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:Fn.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:Fn.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:Fn.NumberNode({min:0,max:1}),cluster_probability:Fn.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Fn.Opt(Fn.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Dn={};Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initSurfaceBuilderSchemas=void 0;const Bn=Pe;Dn.initSurfaceBuilderSchemas=function(e,t){const i=Bn.StringNode.bind(void 0,t),n=Bn.Reference.bind(void 0,e);e.register("configured_surface_builder",Bn.Mod(Bn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Bn.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Ln={};Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initTemplatePoolSchemas=void 0;const Mn=Pe;Ln.initTemplatePoolSchemas=function(e,t){const i=Mn.Reference.bind(void 0,e),n=Mn.StringNode.bind(void 0,t),r=Mn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Mn.Mod(Mn.ObjectNode({name:n(),fallback:n(),elements:Mn.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Mn.Mod(Mn.ObjectNode({weight:Mn.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Mn.Mod(Mn.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Mn.Switch]:[{push:"element_type"}],[Mn.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r},"minecraft:list_pool_element":{elements:Mn.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(pn,"__esModule",{value:!0}),pn.initWorldgenSchemas=void 0;const Tn=mn,Rn=gn,$n=bn,jn=wn,In=Cn,Pn=xn,zn=En,Un=Dn,Wn=Ln;pn.initWorldgenSchemas=function(e,t){Tn.initBiomeSchemas(e,t),Rn.initCarverSchemas(e,t),$n.initDecoratorSchemas(e,t),jn.initFeatureSchemas(e,t),In.initNoiseSettingsSchemas(e,t),Pn.initProcessorListSchemas(e,t),zn.initStructureFeatureSchemas(e,t),Un.initSurfaceBuilderSchemas(e,t),Wn.initTemplatePoolSchemas(e,t)};var Hn={};Object.defineProperty(Hn,"__esModule",{value:!0}),Hn.initWorldSettingsSchemas=void 0;const qn=Pe;Hn.initWorldSettingsSchemas=function(e,t){const i=qn.Reference.bind(void 0,e),n=qn.StringNode.bind(void 0,t);e.register("world_settings",qn.Mod(qn.ObjectNode({generate_features:qn.BooleanNode(),bonus_chest:qn.BooleanNode(),seed:qn.NumberNode({integer:!0}),dimensions:qn.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.initSchemas=void 0;const Vn=Fi,Gn=Mi,Kn=Di,Xn=zi,Jn=Hi,Yn=Gi,Zn=Ji,Qn=tn,er=rn,tr=sn,ir=ln,nr=dn,rr=pn,or=Hn;Ei.initSchemas=function(e,t){Kn.initCommonSchemas(e,t),Vn.initAdvancementSchemas(e,t),Gn.initAssetsSchemas(e,t),Xn.initConditionSchemas(e,t),Yn.initDimensionTypeSchemas(e,t),Jn.initDimensionSchemas(e,t),Zn.initLootTableSchemas(e,t),Qn.initPackMcmetaSchemas(e,t),er.initPredicatesSchemas(e,t),tr.initRecipeSchemas(e,t),ir.initTagsSchemas(e,t),nr.initTextComponentSchemas(e,t),rr.initWorldgenSchemas(e,t),or.initWorldSettingsSchemas(e,t)};var ar=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),sr=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cr=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&ar(t,e,i);return sr(t,e),t};Object.defineProperty(Oi,"__esModule",{value:!0});var lr=Oi.getSchemas=Oi.getCollections=void 0;const ur=Pe,dr=Si,hr=Ei;var pr=Oi.lootContext=cr(Yi);var mr=Oi.getCollections=function(){const e=new ur.CollectionRegistry;return dr.initCollections(e),e};lr=Oi.getSchemas=function(e){const t=new ur.SchemaRegistry;return hr.initSchemas(t,e),t};var fr=Object.freeze(Object.assign(Object.create(null),Oi,{[Symbol.toStringTag]:"Module",get getSchemas(){return lr},get getCollections(){return mr},lootContext:pr,default:Oi})),gr={},_r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.initCollections=void 0,_r.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var br={},vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initAdvancementSchemas=void 0;const yr=Pe;vr.initAdvancementSchemas=function(e,t){const i=yr.Reference.bind(void 0,e),n=yr.StringNode.bind(void 0,t),r=yr.ChoiceNode([{type:"object",node:yr.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:yr.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",yr.Mod(yr.ObjectNode({display:yr.Opt(yr.Mod(yr.ObjectNode({icon:yr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:yr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:yr.Opt(n()),frame:yr.Opt(n({enum:["task","challenge","goal"]})),show_toast:yr.Opt(yr.BooleanNode()),announce_to_chat:yr.Opt(yr.BooleanNode()),hidden:yr.Opt(yr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:yr.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:yr.MapNode(n(),i("advancement_criteria")),requirements:yr.Opt(yr.ListNode(yr.ListNode(n()))),rewards:yr.Opt(yr.ObjectNode({function:yr.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:yr.Opt(yr.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:yr.Opt(yr.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:yr.Opt(yr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",yr.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:yr.Opt(yr.ObjectNode({player:yr.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[yr.Switch]:["pop",{push:"trigger"}],[yr.Case]:{"minecraft:bee_nest_destroyed":{block:yr.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:yr.Opt(yr.NumberNode({integer:!0})),item:yr.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:yr.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:yr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:yr.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:yr.Opt(yr.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:yr.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:yr.Opt(yr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),yr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:yr.Opt(r)},"minecraft:enter_block":{block:yr.Opt(n({validator:"resource",params:{pool:"block"}})),state:yr.Opt(yr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:yr.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:yr.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:yr.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:yr.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:yr.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:yr.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:yr.Opt(yr.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:yr.Opt(yr.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:yr.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:yr.Opt(i("item_predicate")),location:yr.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:yr.Opt(yr.ListNode(r))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:yr.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:yr.Opt(i("location_predicate")),exited:yr.Opt(i("location_predicate"))},"minecraft:placed_block":{block:yr.Opt(n({validator:"resource",params:{pool:"block"}})),state:yr.Opt(yr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:yr.Opt(i("item_predicate")),location:yr.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:yr.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:yr.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:yr.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:yr.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:yr.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:yr.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:yr.Opt(i("entity_predicate")),item:yr.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:yr.Opt(i("item_predicate"))},"minecraft:using_item":{item:yr.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:yr.Opt(i("entity_predicate")),item:yr.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var wr={},xr={};Object.defineProperty(xr,"__esModule",{value:!0}),xr.initModelSchemas=void 0;const Nr=Pe;xr.initModelSchemas=function(e,t){Nr.Reference.bind(void 0,e);const i=Nr.StringNode.bind(void 0,t),n=(e,t,i)=>Nr.ListNode(Nr.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=Nr.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Nr.Mod(Nr.ObjectNode({parent:Nr.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Nr.Opt(Nr.BooleanNode()),gui_light:Nr.Opt(i({enum:"gui_light"})),textures:Nr.Opt(Nr.MapNode(i(),r)),elements:Nr.Opt(Nr.ListNode(Nr.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Nr.Opt(Nr.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:Nr.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Nr.Opt(Nr.BooleanNode())})),shade:Nr.Opt(Nr.BooleanNode()),faces:Nr.MapNode(i({enum:"direction"}),Nr.ObjectNode({texture:r,uv:Nr.Opt(n(4)),cullface:Nr.Opt(i({enum:"direction"})),rotation:Nr.Opt(Nr.NumberNode({integer:!0})),tintindex:Nr.Opt(Nr.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Nr.Opt(Nr.MapNode(i({enum:"display_position"}),Nr.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Nr.Opt(Nr.ListNode(Nr.ObjectNode({predicate:Nr.MapNode(i({enum:"item_model_predicates"}),Nr.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initBlockDefinitionSchemas=void 0;const Ar=Pe;kr.initBlockDefinitionSchemas=function(e,t){const i=Ar.Reference.bind(void 0,e),n=Ar.StringNode.bind(void 0,t);e.register("block_definition",Ar.Mod(Ar.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Ar.ObjectNode({variants:Ar.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Ar.ObjectNode({multipart:Ar.ListNode(Ar.ObjectNode({when:Ar.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Ar.Opt(Ar.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Ar.Opt(Ar.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Ar.Opt(Ar.BooleanNode())};e.register("model_variant",Ar.ChoiceNode([{type:"object",node:Ar.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Ar.ListNode(Ar.ObjectNode(c(s({},r),{weight:Ar.Opt(Ar.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Ar.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Ar.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Ar.ObjectNode({OR:Ar.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(wr,"__esModule",{value:!0}),wr.initAssetsSchemas=void 0;const Cr=xr,Or=kr;wr.initAssetsSchemas=function(e,t){Or.initBlockDefinitionSchemas(e,t),Cr.initModelSchemas(e,t)};var Sr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Sr);var Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.initConditionSchemas=void 0;const Fr=Pe,Dr=Sr;Er.initConditionSchemas=function(e,t){const i=Fr.Reference.bind(void 0,e),n=Fr.StringNode.bind(void 0,t);e.register("predicate",Fr.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",Fr.Mod(Fr.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Fr.Switch]:[{push:"condition"}],[Fr.Case]:Dr.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Br={};Object.defineProperty(Br,"__esModule",{value:!0}),Br.initDimensionSchemas=void 0;const Lr=Pe,Mr=Sr;Br.initDimensionSchemas=function(e,t){const i=Lr.Reference.bind(void 0,e),n=Lr.StringNode.bind(void 0,t),r=e=>Lr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Lr.Mod(Lr.ObjectNode({type:Mr.DimensionTypePresets(i("dimension_type")),generator:Lr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Lr.Switch]:[{push:"type"}],[Lr.Case]:{"minecraft:noise":{seed:Lr.NumberNode({integer:!0}),settings:Mr.NoiseSettingsPresets(i("noise_settings")),biome_source:Lr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Lr.Switch]:[{push:"type"}],[Lr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Lr.NumberNode({integer:!0}),preset:Lr.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(Lr.Mod(Lr.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Lr.Opt(Lr.NumberNode({integer:!0,min:0,max:62})),biomes:Lr.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Lr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Lr.NumberNode({integer:!0}),large_biomes:Lr.Opt(Lr.BooleanNode()),legacy_biome_init_layer:Lr.Opt(Lr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Lr.ObjectNode({biome:Lr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Lr.Opt(Lr.BooleanNode()),features:Lr.Opt(Lr.BooleanNode()),layers:Lr.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Lr.Mod(Lr.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Lr.ObjectNode({altitude:Lr.NumberNode(),temperature:Lr.NumberNode(),humidity:Lr.NumberNode(),weirdness:Lr.NumberNode(),offset:Lr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Lr.Mod(Lr.ObjectNode({firstOctave:Lr.NumberNode({integer:!0}),amplitudes:Lr.ListNode(Lr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Tr={};Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.initDimensionTypeSchemas=void 0;const Rr=Pe,$r=Sr;Tr.initDimensionTypeSchemas=function(e,t){const i=Rr.StringNode.bind(void 0,t);e.register("dimension_type",Rr.Mod(Rr.ObjectNode({name:Rr.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Rr.BooleanNode(),natural:Rr.BooleanNode(),piglin_safe:Rr.BooleanNode(),respawn_anchor_works:Rr.BooleanNode(),bed_works:Rr.BooleanNode(),has_raids:Rr.BooleanNode(),has_skylight:Rr.BooleanNode(),has_ceiling:Rr.BooleanNode(),coordinate_scale:Rr.NumberNode({min:1e-5,max:3e7}),ambient_light:Rr.NumberNode(),fixed_time:Rr.Opt(Rr.NumberNode({integer:!0})),logical_height:Rr.NumberNode({integer:!0,min:0,max:4096}),effects:Rr.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:Rr.NumberNode({integer:!0,min:-2048,max:2047}),height:Rr.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>$r.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var jr={};Object.defineProperty(jr,"__esModule",{value:!0}),jr.initItemModifierSchemas=void 0;const Ir=Pe,Pr=Sr;jr.initItemModifierSchemas=function(e,t){const i=Ir.Reference.bind(void 0,e),n=Ir.StringNode.bind(void 0,t);e.register("item_modifier",Ir.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Ir.Opt(Ir.ListNode(i("condition")))};e.register("function",Ir.Mod(Ir.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Ir.Switch]:[{push:"function"}],[Ir.Case]:Pr.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var zr={},Ur={};Object.defineProperty(Ur,"__esModule",{value:!0}),Ur.LootFunctions=Ur.LootConditions=Ur.LootCopySources=Ur.LootEntitySources=Ur.LootTableTypes=void 0,Ur.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ur.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ur.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ur.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ur.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(zr,"__esModule",{value:!0}),zr.initLootTableSchemas=void 0;const Wr=Pe,Hr=Ur,qr=Sr;zr.initLootTableSchemas=function(e,t){const i=Wr.Reference.bind(void 0,e),n=Wr.StringNode.bind(void 0,t),r={conditions:Wr.Opt(Wr.ListNode(i("loot_condition")))},o=s({functions:Wr.Opt(Wr.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Hr.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Wr.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Wr.SwitchNode(r)}const c=a(Hr.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Hr.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Hr.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Hr.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Wr.Mod(Wr.ObjectNode({type:Wr.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Wr.Opt(Wr.ListNode(Wr.Mod(Wr.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:Wr.Opt(i("number_provider")),entries:Wr.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Wr.Opt(Wr.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Wr.Mod(Wr.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0,min:1}),h)),quality:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0}),h)),[Wr.Switch]:[{push:"type"}],[Wr.Case]:{"minecraft:alternatives":s({children:Wr.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Wr.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Wr.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Wr.Opt(Wr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Wr.Mod(Wr.ObjectNode({function:l,[Wr.Switch]:[{push:"function"}],[Wr.Case]:qr.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Wr.Mod(Wr.ObjectNode({condition:c,[Wr.Switch]:[{push:"condition"}],[Wr.Case]:qr.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Wr.Mod(Wr.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Wr.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Vr={};Object.defineProperty(Vr,"__esModule",{value:!0}),Vr.initPackMcmetaSchemas=void 0;const Gr=Pe;Vr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Gr.Mod(Gr.ObjectNode({pack:Gr.Mod(Gr.ObjectNode({pack_format:Gr.Mod(Gr.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:Gr.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPredicatesSchemas=void 0;const Xr=Pe;Kr.initPredicatesSchemas=function(e,t){const i=Xr.Reference.bind(void 0,e),n=Xr.StringNode.bind(void 0,t),r=Xr.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Xr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Xr.ObjectNode({min:Xr.Opt(Xr.NumberNode({integer:!0})),max:Xr.Opt(Xr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Xr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Xr.ObjectNode({items:Xr.Opt(Xr.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Xr.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Xr.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Xr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Xr.Opt(Xr.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Xr.ObjectNode({enchantment:Xr.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Xr.ObjectNode({blocks:Xr.Opt(Xr.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Xr.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Xr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Xr.Opt(Xr.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Xr.ObjectNode({fluid:Xr.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Xr.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Xr.Opt(Xr.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Xr.ObjectNode({position:Xr.Opt(Xr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Xr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Xr.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Xr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Xr.Opt(Xr.ObjectNode({light:i("int_bounds")})),smokey:Xr.Opt(Xr.BooleanNode()),block:Xr.Opt(i("block_predicate")),fluid:Xr.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Xr.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Xr.Switch]:[{push:"type"}],[Xr.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Xr.ObjectNode({gamemode:Xr.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Xr.Opt(Xr.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Xr.ChoiceNode([{type:"boolean",node:Xr.BooleanNode(),change:e=>!0},{type:"object",node:Xr.MapNode(n(),Xr.BooleanNode())}]))),recipes:Xr.Opt(Xr.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Xr.BooleanNode())),stats:Xr.Opt(Xr.ListNode(i("statistic_predicate"))),looking_at:Xr.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Xr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Xr.Opt(Xr.BooleanNode()),visible:Xr.Opt(Xr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Xr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Xr.ObjectNode({type:Xr.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Xr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Xr.Opt(n({validator:"team"})),location:Xr.Opt(i("location_predicate")),stepping_on:Xr.Opt(i("location_predicate")),distance:Xr.Opt(i("distance_predicate")),flags:Xr.Opt(Xr.ObjectNode({is_on_fire:Xr.Opt(Xr.BooleanNode()),is_sneaking:Xr.Opt(Xr.BooleanNode()),is_sprinting:Xr.Opt(Xr.BooleanNode()),is_swimming:Xr.Opt(Xr.BooleanNode()),is_baby:Xr.Opt(Xr.BooleanNode())})),equipment:Xr.Opt(Xr.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Xr.Opt(i("player_predicate")),vehicle:Xr.Opt(i("entity_predicate")),passenger:Xr.Opt(i("entity_predicate")),targeted_entity:Xr.Opt(i("entity_predicate")),lightning_bolt:Xr.Opt(Xr.ObjectNode({blocks_set_on_fire:Xr.Opt(i("int_bounds")),entity_struck:Xr.Opt(i("entity_predicate"))})),fishing_hook:Xr.Opt(Xr.ObjectNode({in_open_water:Xr.Opt(Xr.BooleanNode())})),effects:Xr.Opt(Xr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Xr.ObjectNode({is_explosion:Xr.Opt(Xr.BooleanNode()),is_fire:Xr.Opt(Xr.BooleanNode()),is_magic:Xr.Opt(Xr.BooleanNode()),is_projectile:Xr.Opt(Xr.BooleanNode()),is_lightning:Xr.Opt(Xr.BooleanNode()),bypasses_armor:Xr.Opt(Xr.BooleanNode()),bypasses_invulnerability:Xr.Opt(Xr.BooleanNode()),bypasses_magic:Xr.Opt(Xr.BooleanNode()),source_entity:Xr.Opt(i("entity_predicate")),direct_entity:Xr.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Xr.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Xr.Opt(Xr.BooleanNode()),source_entity:Xr.Opt(i("entity_predicate")),type:Xr.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initRecipeSchemas=void 0;const Yr=Pe;Jr.initRecipeSchemas=function(e,t){const i=Yr.Reference.bind(void 0,e),n=Yr.StringNode.bind(void 0,t);e.register("recipe",Yr.Mod(Yr.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Yr.Switch]:[{push:"type"}],[Yr.Case]:{"minecraft:crafting_shaped":{group:Yr.Opt(n({enum:"recipe_group",additional:!0})),pattern:Yr.ListNode(n()),key:Yr.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Yr.Opt(n()),ingredients:Yr.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Yr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yr.Opt(Yr.NumberNode()),cookingtime:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Yr.NumberNode({integer:!0})},"minecraft:smithing":{group:Yr.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yr.Mod(Yr.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yr.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yr.Mod(Yr.ObjectNode({item:Yr.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Yr.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yr.Mod(Yr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Yr.Opt(Yr.Mod(Yr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initTagsSchemas=void 0;const Qr=Pe;Zr.initTagsSchemas=function(e,t){const i=Qr.StringNode.bind(void 0,t),n=e=>Qr.Mod(Qr.ObjectNode({replace:Qr.Opt(Qr.BooleanNode()),values:Qr.ListNode(Qr.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qr.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qr.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initTextComponentSchemas=void 0;const to=Pe;eo.initTextComponentSchemas=function(e,t){const i=to.Reference.bind(void 0,e),n=to.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",to.Mod(to.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:to.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:to.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:to.Opt(n()),font:to.Opt(n()),bold:to.Opt(to.BooleanNode()),italic:to.Opt(to.BooleanNode()),underlined:to.Opt(to.BooleanNode()),strikethrough:to.Opt(to.BooleanNode()),obfuscated:to.Opt(to.BooleanNode()),insertion:to.Opt(n()),clickEvent:to.Opt(to.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[to.Switch]:[{push:"action"}],[to.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:to.Opt(to.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[to.Switch]:[{push:"action"}],[to.Case]:{show_text:{value:to.Opt(i("text_component")),contents:to.Opt(i("text_component"))},show_item:{value:to.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:to.Opt(to.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:to.Opt(to.NumberNode({integer:!0})),tag:to.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:to.Opt(to.ObjectNode({name:to.Opt(n()),type:to.Opt(n()),id:to.Opt(n())})),contents:to.Opt(to.Mod(to.ObjectNode({name:to.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:to.Opt(i("text_component_list"))};e.register("text_component_object",to.Mod(to.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:to.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:to.ObjectNode(s({translate:n(),with:to.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:to.ObjectNode(s({score:to.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:to.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:to.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:to.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:to.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:to.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:to.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:to.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:to.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:to.Opt(to.BooleanNode()),separator:to.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",to.Mod(to.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var io={},no={};Object.defineProperty(no,"__esModule",{value:!0}),no.initBiomeSchemas=void 0;const ro=Pe;no.initBiomeSchemas=function(e,t){const i=ro.StringNode.bind(void 0,t);e.register("biome",ro.Mod(ro.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:ro.NumberNode(),scale:ro.NumberNode(),temperature:ro.NumberNode(),downfall:ro.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:ro.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:ro.Opt(ro.BooleanNode()),creature_spawn_probability:ro.Opt(ro.NumberNode({min:0,max:1})),effects:ro.ObjectNode({sky_color:ro.NumberNode({color:!0}),fog_color:ro.NumberNode({color:!0}),water_color:ro.NumberNode({color:!0}),water_fog_color:ro.NumberNode({color:!0}),grass_color:ro.Opt(ro.NumberNode({color:!0})),foliage_color:ro.Opt(ro.NumberNode({color:!0})),grass_color_modifier:ro.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:ro.Opt(i()),mood_sound:ro.Opt(ro.ObjectNode({sound:i(),tick_delay:ro.NumberNode({integer:!0}),block_search_extent:ro.NumberNode({integer:!0}),offset:ro.NumberNode()})),additions_sound:ro.Opt(ro.ObjectNode({sound:i(),tick_chance:ro.NumberNode({min:0,max:1})})),music:ro.Opt(ro.ObjectNode({sound:i(),min_delay:ro.NumberNode({integer:!0,min:0}),max_delay:ro.NumberNode({integer:!0,min:0}),replace_current_music:ro.BooleanNode()})),particle:ro.Opt(ro.ObjectNode({options:ro.ObjectNode({type:i()}),probability:ro.NumberNode({min:0,max:1})}))}),starts:ro.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:ro.MapNode(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),ro.Mod(ro.ListNode(ro.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:ro.NumberNode({integer:!0}),minCount:ro.NumberNode({integer:!0}),maxCount:ro.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:ro.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),ro.Mod(ro.ObjectNode({energy_budget:ro.NumberNode(),charge:ro.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:ro.MapNode(i({enum:["air","liquid"]}),ro.Mod(ro.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:ro.ListNode(ro.Mod(ro.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var oo={};Object.defineProperty(oo,"__esModule",{value:!0}),oo.initCarverSchemas=void 0;const ao=Pe,so=Sr;oo.initCarverSchemas=function(e,t){const i=ao.Reference.bind(void 0,e),n=ao.StringNode.bind(void 0,t),r={vertical_rotation:so.FloatProvider(),shape:ao.ObjectNode({distance_factor:so.FloatProvider(),thickness:so.FloatProvider(),width_smoothness:ao.NumberNode({integer:!0,min:0}),horizontal_radius_factor:so.FloatProvider(),vertical_radius_default_factor:ao.NumberNode(),vertical_radius_center_factor:ao.NumberNode()})},o={horizontal_radius_multiplier:so.FloatProvider(),vertical_radius_multiplier:so.FloatProvider(),floor_level:so.FloatProvider({min:-1,max:1})};e.register("configured_carver",ao.Mod(ao.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:ao.ObjectNode({probability:ao.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:so.FloatProvider(),lava_level:i("vertical_anchor"),aquifers_enabled:ao.BooleanNode(),debug_settings:ao.Opt(ao.ObjectNode({debug_mode:ao.Opt(ao.BooleanNode()),air_state:ao.Opt(i("block_state")),water_state:ao.Opt(i("block_state")),lava_state:ao.Opt(i("block_state")),barrier_state:ao.Opt(i("block_state"))})),[ao.Switch]:["pop",{push:"type"}],[ao.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var co={};Object.defineProperty(co,"__esModule",{value:!0}),co.initDecoratorSchemas=void 0;const lo=Pe,uo=Sr;co.initDecoratorSchemas=function(e,t){const i=lo.Reference.bind(void 0,e),n=lo.StringNode.bind(void 0,t),r={count:uo.IntProvider({min:0,max:256})};e.register("configured_decorator",lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:lo.NumberNode({integer:!0})},"minecraft:chance":{chance:lo.NumberNode({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:lo.NumberNode({integer:!0,min:0}),extra_count:lo.NumberNode({integer:!0,min:0}),extra_chance:lo.NumberNode({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:lo.NumberNode(),below_noise:lo.NumberNode({integer:!0}),above_noise:lo.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:lo.NumberNode({integer:!0}),noise_factor:lo.NumberNode(),noise_offset:lo.Opt(lo.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:lo.NumberNode({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:lo.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ho={},po={};Object.defineProperty(po,"__esModule",{value:!0}),po.initProcessorListSchemas=po.Processors=void 0;const mo=Pe;po.initProcessorListSchemas=function(e,t){const i=mo.Reference.bind(void 0,e),n=mo.StringNode.bind(void 0,t);po.Processors=mo.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",mo.Mod(mo.ObjectNode({processors:mo.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",mo.Mod(mo.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[mo.Switch]:[{push:"processor_type"}],[mo.Case]:{"minecraft:block_age":{mossiness:mo.NumberNode()},"minecraft:block_ignore":{blocks:mo.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:mo.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:mo.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:mo.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",mo.Mod(mo.ObjectNode({position_predicate:mo.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:mo.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:mo.Opt(mo.NumberNode({min:0,max:255,integer:!0})),max_dist:mo.Opt(mo.NumberNode({min:0,max:255,integer:!0})),min_chance:mo.Opt(mo.NumberNode({min:0,max:1})),max_chance:mo.Opt(mo.NumberNode({min:0,max:1}))};e.register("pos_rule_test",mo.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[mo.Switch]:[{push:"predicate_type"}],[mo.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",mo.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[mo.Switch]:[{push:"predicate_type"}],[mo.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:mo.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:mo.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ho,"__esModule",{value:!0}),ho.initFeatureSchemas=void 0;const fo=Pe,go=Sr,_o=po;ho.initFeatureSchemas=function(e,t){const i=fo.Reference.bind(void 0,e),n=fo.StringNode.bind(void 0,t),r={can_replace:fo.Opt(fo.BooleanNode()),project:fo.Opt(fo.BooleanNode()),need_water:fo.Opt(fo.BooleanNode()),xspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),yspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),zspread:fo.Opt(fo.NumberNode({integer:!0,min:0})),tries:fo.Opt(fo.NumberNode({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:fo.ListNode(i("block_state")),blacklist:fo.ListNode(i("block_state"))},o={state:i("block_state"),radius:go.IntProvider({min:0,max:8}),half_height:fo.NumberNode({integer:!0,min:0,max:4}),targets:fo.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:fo.Opt(fo.NumberNode({integer:!0}))},s=fo.ObjectNode({target:i("rule_test"),state:i("block_state")}),c={size:fo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:fo.NumberNode({min:0,max:1}),targets:fo.ListNode(s)},l=fo.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:n({enum:["floor","ceiling"]}),depth:go.IntProvider({min:1,max:128}),vertical_range:fo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:fo.NumberNode({min:0,max:1}),extra_edge_column_chance:fo.NumberNode({min:0,max:1}),vegetation_chance:fo.NumberNode({min:0,max:1}),xz_radius:go.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:l};e.register("configured_feature",fo.Mod(fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:fo.ObjectNode({[fo.Switch]:["pop",{push:"type"}],[fo.Case]:{"minecraft:bamboo":{probability:fo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:go.IntProvider({min:0,max:3}),height:go.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:go.IntProvider({min:0,max:16}),rim_size:go.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:fo.NumberNode({integer:!0,min:1,max:512}),height:go.IntProvider({min:0,max:128}),radius:go.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:fo.NumberNode({integer:!0,min:0,max:64}),height_deviation:fo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:go.IntProvider({min:0,max:128}),density:go.FloatProvider({min:0,max:2}),wetness:go.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:fo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:fo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:fo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:fo.BooleanNode(),exit:fo.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:fo.Opt(fo.BooleanNode()),crystal_beam_target:fo.Opt(i("block_pos")),spikes:fo.ListNode(fo.ObjectNode({centerX:fo.Opt(fo.NumberNode({integer:!0})),centerZ:fo.Opt(fo.NumberNode({integer:!0})),radius:fo.Opt(fo.NumberNode({integer:!0})),height:fo.Opt(fo.NumberNode({integer:!0})),guarded:fo.Opt(fo.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:fo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:fo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:fo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:fo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:_o.Processors,overlay_processors:_o.Processors},"minecraft:geode":{blocks:fo.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:fo.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:fo.ObjectNode({filling:fo.Opt(fo.NumberNode({min:.01,max:50})),inner_layer:fo.Opt(fo.NumberNode({min:.01,max:50})),middle_layer:fo.Opt(fo.NumberNode({min:.01,max:50})),outer_layer:fo.Opt(fo.NumberNode({min:.01,max:50}))}),crack:fo.ObjectNode({generate_crack_chance:fo.Opt(fo.NumberNode({min:0,max:1})),base_crack_size:fo.Opt(fo.NumberNode({min:0,max:5})),crack_point_offset:fo.Opt(fo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:fo.Opt(fo.NumberNode({min:0,max:1})),use_potential_placements_chance:fo.Opt(fo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:fo.Opt(fo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:fo.Opt(fo.BooleanNode()),outer_wall_distance:fo.Opt(go.IntProvider({min:1,max:20})),distribution_points:fo.Opt(go.IntProvider({min:1,max:20})),point_offset:fo.Opt(go.IntProvider({min:0,max:10})),min_gen_offset:fo.Opt(fo.NumberNode({integer:!0})),max_gen_offset:fo.Opt(fo.NumberNode({integer:!0})),invalid_blocks_threshold:fo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:fo.Opt(fo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:fo.Opt(fo.NumberNode({min:0,max:1})),can_place_on_floor:fo.Opt(fo.BooleanNode()),can_place_on_ceiling:fo.Opt(fo.BooleanNode()),can_place_on_wall:fo.Opt(fo.BooleanNode()),can_be_placed_on:fo.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:fo.BooleanNode(),height_distribution:fo.ListNode(fo.ObjectNode({weight:fo.NumberNode({integer:!0}),data:go.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:fo.Opt(fo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:fo.Opt(fo.NumberNode({integer:!0,min:1,max:512})),column_radius:go.IntProvider({min:0,max:60}),height_scale:go.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:fo.NumberNode({min:0,max:1}),stalactite_bluntness:go.FloatProvider({min:.1,max:10}),stalagmite_bluntness:go.FloatProvider({min:.1,max:10}),wind_speed:go.FloatProvider({min:0,max:2}),min_radius_for_wind:fo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:fo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:go.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":r,"minecraft:ore":c,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:fo.ListNode(fo.ObjectNode({chance:fo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:fo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:fo.NumberNode({integer:!0,min:1,max:64}),root_radius:fo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:fo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:fo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:fo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:fo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:fo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:fo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:go.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:fo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:fo.Opt(fo.ListNode(i("block_state"))),place_in:fo.Opt(fo.ListNode(i("block_state"))),place_under:fo.Opt(fo.ListNode(i("block_state")))},"minecraft:simple_random_selector":{features:fo.ListNode(l)},"minecraft:small_dripstone":{max_placements:fo.Opt(fo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:fo.Opt(fo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:fo.Opt(fo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:fo.Opt(fo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:fo.NumberNode({integer:!0}),hole_count:fo.NumberNode({integer:!0}),requires_block_below:fo.BooleanNode(),valid_blocks:fo.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:fo.Opt(fo.BooleanNode()),force_dirt:fo.Opt(fo.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),sapling_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:fo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:fo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:fo.NumberNode({integer:!0,min:0,max:24}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:bending_trunk_placer":{bend_length:go.IntProvider({min:1,max:64}),min_height_for_leaves:fo.Opt(fo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:go.IntProvider({min:0,max:16}),offset:go.IntProvider({min:0,max:16}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:blob_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:fo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:go.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:go.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:go.IntProvider({min:1,max:512}),leaf_placement_attempts:fo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:go.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:fo.ListNode(fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:fo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:fo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:fo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:fo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:fo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",fo.Mod(fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:fo.Opt(fo.NumberNode({min:0,max:80})),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:two_layers_feature_size":{limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:81})),lower_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),upper_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:80})),upper_limit:fo.Opt(fo.NumberNode({integer:!0,min:0,max:80})),lower_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),middle_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16})),upper_size:fo.Opt(fo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",fo.Mod(fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:go.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:fo.ListNode(fo.Mod(fo.ObjectNode({weight:fo.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",fo.Mod(fo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[fo.Switch]:[{push:"type"}],[fo.Case]:{"minecraft:column_placer":{size:go.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initNoiseSettingsSchemas=void 0;const vo=Pe,yo=Sr;bo.initNoiseSettingsSchemas=function(e,t){const i=vo.Reference.bind(void 0,e),n=vo.StringNode.bind(void 0,t);e.register("noise_settings",vo.Mod(vo.ObjectNode({name:vo.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:vo.NumberNode({integer:!0}),bedrock_floor_position:vo.NumberNode({integer:!0}),sea_level:vo.NumberNode({integer:!0}),min_surface_level:vo.NumberNode({integer:!0}),disable_mob_generation:vo.BooleanNode(),noise_caves_enabled:vo.BooleanNode(),noodle_caves_enabled:vo.BooleanNode(),aquifers_enabled:vo.BooleanNode(),deepslate_enabled:vo.BooleanNode(),ore_veins_enabled:vo.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:vo.ObjectNode({min_y:vo.NumberNode({integer:!0,min:-2048,max:2047}),height:vo.NumberNode({integer:!0,min:0,max:4096}),density_factor:vo.NumberNode(),density_offset:vo.NumberNode(),size_horizontal:vo.NumberNode({integer:!0}),size_vertical:vo.NumberNode({integer:!0}),simplex_surface_noise:vo.BooleanNode(),random_density_offset:vo.Opt(vo.BooleanNode()),island_noise_override:vo.Opt(vo.BooleanNode()),amplified:vo.Opt(vo.BooleanNode()),sampling:vo.ObjectNode({xz_scale:vo.NumberNode(),y_scale:vo.NumberNode(),xz_factor:vo.NumberNode(),y_factor:vo.NumberNode()}),bottom_slide:vo.ObjectNode({target:vo.NumberNode({integer:!0}),size:vo.NumberNode({integer:!0,min:0}),offset:vo.NumberNode({integer:!0})}),top_slide:vo.ObjectNode({target:vo.NumberNode({integer:!0}),size:vo.NumberNode({integer:!0,min:0}),offset:vo.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>yo.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("generator_structures",vo.ObjectNode({stronghold:vo.Opt(vo.ObjectNode({distance:vo.NumberNode({integer:!0,min:0,max:1023}),spread:vo.NumberNode({integer:!0,min:0,max:1023}),count:vo.NumberNode({integer:!0,min:1,max:4095})})),structures:vo.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),vo.Mod(vo.ObjectNode({spacing:vo.NumberNode({integer:!0,min:0,max:4096}),separation:vo.Mod(vo.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:vo.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",vo.Mod(vo.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:vo.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var wo={};Object.defineProperty(wo,"__esModule",{value:!0}),wo.initStructureFeatureSchemas=void 0;const xo=Pe;wo.initStructureFeatureSchemas=function(e,t){const i=xo.StringNode.bind(void 0,t),n=xo.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:xo.NumberNode({integer:!0})};e.register("configured_structure_feature",xo.Mod(xo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:xo.ObjectNode({[xo.Switch]:["pop",{push:"type"}],[xo.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:xo.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:xo.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:xo.NumberNode({min:0,max:1}),cluster_probability:xo.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:xo.Opt(xo.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var No={};Object.defineProperty(No,"__esModule",{value:!0}),No.initSurfaceBuilderSchemas=void 0;const ko=Pe;No.initSurfaceBuilderSchemas=function(e,t){const i=ko.StringNode.bind(void 0,t),n=ko.Reference.bind(void 0,e);e.register("configured_surface_builder",ko.Mod(ko.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:ko.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Ao={};Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.initTemplatePoolSchemas=void 0;const Co=Pe,Oo=po;Ao.initTemplatePoolSchemas=function(e,t){const i=Co.Reference.bind(void 0,e),n=Co.StringNode.bind(void 0,t);e.register("template_pool",Co.Mod(Co.ObjectNode({name:n(),fallback:n(),elements:Co.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Co.Mod(Co.ObjectNode({weight:Co.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Co.Mod(Co.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Co.Switch]:[{push:"element_type"}],[Co.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Oo.Processors},"minecraft:list_pool_element":{elements:Co.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Oo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(io,"__esModule",{value:!0}),io.initWorldgenSchemas=void 0;const So=no,Eo=oo,Fo=co,Do=ho,Bo=bo,Lo=po,Mo=wo,To=No,Ro=Ao;io.initWorldgenSchemas=function(e,t){Lo.initProcessorListSchemas(e,t),So.initBiomeSchemas(e,t),Eo.initCarverSchemas(e,t),Fo.initDecoratorSchemas(e,t),Do.initFeatureSchemas(e,t),Bo.initNoiseSettingsSchemas(e,t),Mo.initStructureFeatureSchemas(e,t),To.initSurfaceBuilderSchemas(e,t),Ro.initTemplatePoolSchemas(e,t)};var $o={};Object.defineProperty($o,"__esModule",{value:!0}),$o.initWorldSettingsSchemas=void 0;const jo=Pe;$o.initWorldSettingsSchemas=function(e,t){const i=jo.Reference.bind(void 0,e),n=jo.StringNode.bind(void 0,t);e.register("world_settings",jo.Mod(jo.ObjectNode({generate_features:jo.BooleanNode(),bonus_chest:jo.BooleanNode(),seed:jo.NumberNode({integer:!0}),dimensions:jo.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(br,"__esModule",{value:!0}),br.initSchemas=void 0;const Io=vr,Po=wr,zo=Sr,Uo=Er,Wo=Br,Ho=Tr,qo=jr,Vo=zr,Go=Vr,Ko=Kr,Xo=Jr,Jo=Zr,Yo=eo,Zo=io,Qo=$o;br.initSchemas=function(e,t){zo.initCommonSchemas(e,t),Io.initAdvancementSchemas(e,t),Po.initAssetsSchemas(e,t),Uo.initConditionSchemas(e,t),Ho.initDimensionTypeSchemas(e,t),Wo.initDimensionSchemas(e,t),qo.initItemModifierSchemas(e,t),Vo.initLootTableSchemas(e,t),Go.initPackMcmetaSchemas(e,t),Ko.initPredicatesSchemas(e,t),Xo.initRecipeSchemas(e,t),Jo.initTagsSchemas(e,t),Yo.initTextComponentSchemas(e,t),Zo.initWorldgenSchemas(e,t),Qo.initWorldSettingsSchemas(e,t)};var ea=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),ta=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ia=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&ea(t,e,i);return ta(t,e),t};Object.defineProperty(gr,"__esModule",{value:!0});var na=gr.getSchemas=gr.getCollections=void 0;const ra=Pe,oa=_r,aa=br;var sa=gr.lootContext=ia(Ur);var ca=gr.getCollections=function(){const e=new ra.CollectionRegistry;return oa.initCollections(e),e};na=gr.getSchemas=function(e){const t=new ra.SchemaRegistry;return aa.initSchemas(t,e),t};var la=Object.freeze(Object.assign(Object.create(null),gr,{[Symbol.toStringTag]:"Module",get getSchemas(){return na},get getCollections(){return ca},lootContext:sa,default:gr})),ua={},da={};Object.defineProperty(da,"__esModule",{value:!0}),da.initCollections=void 0,da.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var ha={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initAdvancementSchemas=void 0;const ma=Pe;pa.initAdvancementSchemas=function(e,t){const i=ma.Reference.bind(void 0,e),n=ma.StringNode.bind(void 0,t),r=ma.ChoiceNode([{type:"object",node:ma.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:ma.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",ma.Mod(ma.ObjectNode({display:ma.Opt(ma.Mod(ma.ObjectNode({icon:ma.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:ma.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:ma.Opt(n()),frame:ma.Opt(n({enum:["task","challenge","goal"]})),show_toast:ma.Opt(ma.BooleanNode()),announce_to_chat:ma.Opt(ma.BooleanNode()),hidden:ma.Opt(ma.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ma.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:ma.MapNode(n(),i("advancement_criteria")),requirements:ma.Opt(ma.ListNode(ma.ListNode(n()))),rewards:ma.Opt(ma.ObjectNode({function:ma.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:ma.Opt(ma.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ma.Opt(ma.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:ma.Opt(ma.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ma.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ma.Opt(ma.ObjectNode({player:ma.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ma.Switch]:["pop",{push:"trigger"}],[ma.Case]:{"minecraft:bee_nest_destroyed":{block:ma.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:ma.Opt(ma.NumberNode({integer:!0})),item:ma.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:ma.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ma.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:ma.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:ma.Opt(ma.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:ma.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:ma.Opt(ma.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),ma.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:ma.Opt(r)},"minecraft:enter_block":{block:ma.Opt(n({validator:"resource",params:{pool:"block"}})),state:ma.Opt(ma.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:ma.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:ma.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:ma.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:ma.Opt(i("location_predicate")),distance:ma.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:ma.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:ma.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:ma.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:ma.Opt(ma.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:ma.Opt(ma.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:ma.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:ma.Opt(i("item_predicate")),location:ma.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:ma.Opt(ma.ListNode(r))},"minecraft:levitation":{distance:ma.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:ma.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:ma.Opt(i("location_predicate")),distance:ma.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:ma.Opt(n({validator:"resource",params:{pool:"block"}})),state:ma.Opt(ma.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ma.Opt(i("item_predicate")),location:ma.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:ma.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:ma.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:ma.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:ma.Opt(i("location_predicate")),distance:ma.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:ma.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:ma.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ma.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:ma.Opt(i("entity_predicate")),item:ma.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:ma.Opt(i("float_bounds"))},"minecraft:used_totem":{item:ma.Opt(i("item_predicate"))},"minecraft:using_item":{item:ma.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:ma.Opt(i("entity_predicate")),item:ma.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:ma.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var fa={},ga={};Object.defineProperty(ga,"__esModule",{value:!0}),ga.initModelSchemas=void 0;const _a=Pe;ga.initModelSchemas=function(e,t){_a.Reference.bind(void 0,e);const i=_a.StringNode.bind(void 0,t),n=(e,t,i)=>_a.ListNode(_a.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=_a.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",_a.Mod(_a.ObjectNode({parent:_a.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:_a.Opt(_a.BooleanNode()),gui_light:_a.Opt(i({enum:"gui_light"})),textures:_a.Opt(_a.MapNode(i(),r)),elements:_a.Opt(_a.ListNode(_a.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:_a.Opt(_a.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:_a.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:_a.Opt(_a.BooleanNode())})),shade:_a.Opt(_a.BooleanNode()),faces:_a.MapNode(i({enum:"direction"}),_a.ObjectNode({texture:r,uv:_a.Opt(n(4)),cullface:_a.Opt(i({enum:"direction"})),rotation:_a.Opt(_a.NumberNode({integer:!0})),tintindex:_a.Opt(_a.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:_a.Opt(_a.MapNode(i({enum:"display_position"}),_a.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:_a.Opt(_a.ListNode(_a.ObjectNode({predicate:_a.MapNode(i({enum:"item_model_predicates"}),_a.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initBlockDefinitionSchemas=void 0;const va=Pe;ba.initBlockDefinitionSchemas=function(e,t){const i=va.Reference.bind(void 0,e),n=va.StringNode.bind(void 0,t);e.register("block_definition",va.Mod(va.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:va.ObjectNode({variants:va.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:va.ObjectNode({multipart:va.ListNode(va.ObjectNode({when:va.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:va.Opt(va.NumberEnum({integer:!0,values:[0,90,180,270]})),y:va.Opt(va.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:va.Opt(va.BooleanNode())};e.register("model_variant",va.ChoiceNode([{type:"object",node:va.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:va.ListNode(va.ObjectNode(c(s({},r),{weight:va.Opt(va.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",va.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:va.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:va.ObjectNode({OR:va.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(fa,"__esModule",{value:!0}),fa.initAssetsSchemas=void 0;const ya=ga,wa=ba;fa.initAssetsSchemas=function(e,t){wa.initBlockDefinitionSchemas(e,t),ya.initModelSchemas(e,t)};var xa={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const i={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},e.initCommonSchemas=function(n,r){const o=t.StringNode.bind(void 0,r),a=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",c(!0)),n.register("float_bounds",c()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,i,n,r,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[r][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),n.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=o({enum:"copy_source"}),n=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:r.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(n),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(n),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return r.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}}})}}(xa);var Na={};Object.defineProperty(Na,"__esModule",{value:!0}),Na.initConditionSchemas=void 0;const ka=Pe,Aa=xa;Na.initConditionSchemas=function(e,t){const i=ka.Reference.bind(void 0,e),n=ka.StringNode.bind(void 0,t);e.register("predicate",ka.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",ka.Mod(ka.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[ka.Switch]:[{push:"condition"}],[ka.Case]:Aa.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ca={};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.initDimensionSchemas=void 0;const Oa=Pe,Sa=xa;Ca.initDimensionSchemas=function(e,t){const i=Oa.Reference.bind(void 0,e),n=Oa.StringNode.bind(void 0,t);e.register("dimension",Oa.Mod(Oa.ObjectNode({type:Sa.DimensionTypePresets(i("dimension_type")),generator:Oa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Oa.Switch]:[{push:"type"}],[Oa.Case]:{"minecraft:noise":{seed:Oa.NumberNode({integer:!0}),settings:Sa.NoiseSettingsPresets(i("noise_settings")),biome_source:Oa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Oa.Switch]:[{push:"type"}],[Oa.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Oa.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Oa.Mod(Oa.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Oa.Opt(Oa.NumberNode({integer:!0,min:0,max:62})),biomes:Oa.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Oa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Oa.ObjectNode({biome:Oa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Oa.Opt(Oa.BooleanNode()),features:Oa.Opt(Oa.BooleanNode()),layers:Oa.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=Oa.ChoiceNode([{type:"number",node:Oa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Oa.ListNode(Oa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Oa.Mod(Oa.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Oa.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:Oa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Ea={};Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initDimensionTypeSchemas=void 0;const Fa=Pe,Da=xa;Ea.initDimensionTypeSchemas=function(e,t){const i=Fa.StringNode.bind(void 0,t);e.register("dimension_type",Fa.Mod(Fa.ObjectNode({ultrawarm:Fa.BooleanNode(),natural:Fa.BooleanNode(),piglin_safe:Fa.BooleanNode(),respawn_anchor_works:Fa.BooleanNode(),bed_works:Fa.BooleanNode(),has_raids:Fa.BooleanNode(),has_skylight:Fa.BooleanNode(),has_ceiling:Fa.BooleanNode(),coordinate_scale:Fa.NumberNode({min:1e-5,max:3e7}),ambient_light:Fa.NumberNode(),fixed_time:Fa.Opt(Fa.NumberNode({integer:!0})),logical_height:Fa.NumberNode({integer:!0,min:0,max:4096}),effects:Fa.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:Fa.NumberNode({integer:!0,min:-2048,max:2047}),height:Fa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Da.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Ba={};Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.initItemModifierSchemas=void 0;const La=Pe,Ma=xa;Ba.initItemModifierSchemas=function(e,t){const i=La.Reference.bind(void 0,e),n=La.StringNode.bind(void 0,t);e.register("item_modifier",La.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:La.Opt(La.ListNode(i("condition")))};e.register("function",La.Mod(La.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[La.Switch]:[{push:"function"}],[La.Case]:Ma.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ta={},Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.LootFunctions=Ra.LootConditions=Ra.LootCopySources=Ra.LootEntitySources=Ra.LootTableTypes=void 0,Ra.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ra.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ra.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ra.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ra.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.initLootTableSchemas=void 0;const $a=Pe,ja=Ra,Ia=xa;Ta.initLootTableSchemas=function(e,t){const i=$a.Reference.bind(void 0,e),n=$a.StringNode.bind(void 0,t),r={conditions:$a.Opt($a.ListNode(i("loot_condition")))},o=s({functions:$a.Opt($a.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of ja.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new $a.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),$a.SwitchNode(r)}const c=a(ja.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(ja.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(ja.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(ja.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",$a.Mod($a.ObjectNode({type:$a.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:$a.Opt($a.ListNode($a.Mod($a.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:$a.Opt(i("number_provider")),entries:$a.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:$a.Opt($a.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",$a.Mod($a.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:$a.Opt($a.Mod($a.NumberNode({integer:!0,min:1}),h)),quality:$a.Opt($a.Mod($a.NumberNode({integer:!0}),h)),[$a.Switch]:[{push:"type"}],[$a.Case]:{"minecraft:alternatives":s({children:$a.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:$a.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:$a.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:$a.Opt($a.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",$a.Mod($a.ObjectNode({function:l,[$a.Switch]:[{push:"function"}],[$a.Case]:Ia.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",$a.Mod($a.ObjectNode({condition:c,[$a.Switch]:[{push:"condition"}],[$a.Case]:Ia.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",$a.Mod($a.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:$a.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.initPackMcmetaSchemas=void 0;const za=Pe;Pa.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",za.Mod(za.ObjectNode({pack:za.Mod(za.ObjectNode({pack_format:za.Mod(za.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:za.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initPredicatesSchemas=void 0;const Wa=Pe;Ua.initPredicatesSchemas=function(e,t){const i=Wa.Reference.bind(void 0,e),n=Wa.StringNode.bind(void 0,t),r=Wa.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Wa.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Wa.ObjectNode({min:Wa.Opt(Wa.NumberNode({integer:!0})),max:Wa.Opt(Wa.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Wa.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Wa.ObjectNode({items:Wa.Opt(Wa.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Wa.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Wa.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Wa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Wa.Opt(Wa.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Wa.ObjectNode({enchantment:Wa.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Wa.ObjectNode({blocks:Wa.Opt(Wa.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Wa.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Wa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Wa.Opt(Wa.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Wa.ObjectNode({fluid:Wa.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Wa.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Wa.Opt(Wa.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Wa.ObjectNode({position:Wa.Opt(Wa.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Wa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Wa.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Wa.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Wa.Opt(Wa.ObjectNode({light:i("int_bounds")})),smokey:Wa.Opt(Wa.BooleanNode()),block:Wa.Opt(i("block_predicate")),fluid:Wa.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Wa.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Wa.Switch]:[{push:"type"}],[Wa.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Wa.ObjectNode({gamemode:Wa.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Wa.Opt(Wa.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Wa.ChoiceNode([{type:"boolean",node:Wa.BooleanNode(),change:e=>!0},{type:"object",node:Wa.MapNode(n(),Wa.BooleanNode())}]))),recipes:Wa.Opt(Wa.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Wa.BooleanNode())),stats:Wa.Opt(Wa.ListNode(i("statistic_predicate"))),looking_at:Wa.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Wa.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Wa.Opt(Wa.BooleanNode()),visible:Wa.Opt(Wa.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Wa.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Wa.ObjectNode({type:Wa.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Wa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Wa.Opt(n({validator:"team"})),location:Wa.Opt(i("location_predicate")),stepping_on:Wa.Opt(i("location_predicate")),distance:Wa.Opt(i("distance_predicate")),flags:Wa.Opt(Wa.ObjectNode({is_on_fire:Wa.Opt(Wa.BooleanNode()),is_sneaking:Wa.Opt(Wa.BooleanNode()),is_sprinting:Wa.Opt(Wa.BooleanNode()),is_swimming:Wa.Opt(Wa.BooleanNode()),is_baby:Wa.Opt(Wa.BooleanNode())})),equipment:Wa.Opt(Wa.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Wa.Opt(i("player_predicate")),vehicle:Wa.Opt(i("entity_predicate")),passenger:Wa.Opt(i("entity_predicate")),targeted_entity:Wa.Opt(i("entity_predicate")),lightning_bolt:Wa.Opt(Wa.ObjectNode({blocks_set_on_fire:Wa.Opt(i("int_bounds")),entity_struck:Wa.Opt(i("entity_predicate"))})),fishing_hook:Wa.Opt(Wa.ObjectNode({in_open_water:Wa.Opt(Wa.BooleanNode())})),effects:Wa.Opt(Wa.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Wa.ObjectNode({is_explosion:Wa.Opt(Wa.BooleanNode()),is_fire:Wa.Opt(Wa.BooleanNode()),is_magic:Wa.Opt(Wa.BooleanNode()),is_projectile:Wa.Opt(Wa.BooleanNode()),is_lightning:Wa.Opt(Wa.BooleanNode()),bypasses_armor:Wa.Opt(Wa.BooleanNode()),bypasses_invulnerability:Wa.Opt(Wa.BooleanNode()),bypasses_magic:Wa.Opt(Wa.BooleanNode()),source_entity:Wa.Opt(i("entity_predicate")),direct_entity:Wa.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Wa.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Wa.Opt(Wa.BooleanNode()),source_entity:Wa.Opt(i("entity_predicate")),type:Wa.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initRecipeSchemas=void 0;const qa=Pe;Ha.initRecipeSchemas=function(e,t){const i=qa.Reference.bind(void 0,e),n=qa.StringNode.bind(void 0,t);e.register("recipe",qa.Mod(qa.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[qa.Switch]:[{push:"type"}],[qa.Case]:{"minecraft:crafting_shaped":{group:qa.Opt(n({enum:"recipe_group",additional:!0})),pattern:qa.ListNode(n()),key:qa.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:qa.Opt(n()),ingredients:qa.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:qa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:qa.Opt(qa.NumberNode()),cookingtime:qa.Opt(qa.Mod(qa.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:qa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:qa.Opt(qa.NumberNode()),cookingtime:qa.Opt(qa.Mod(qa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:qa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:qa.Opt(qa.NumberNode()),cookingtime:qa.Opt(qa.Mod(qa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:qa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:qa.Opt(qa.NumberNode()),cookingtime:qa.Opt(qa.Mod(qa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:qa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:qa.NumberNode({integer:!0})},"minecraft:smithing":{group:qa.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",qa.Mod(qa.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:qa.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",qa.Mod(qa.ObjectNode({item:qa.Opt(n({validator:"resource",params:{pool:"item"}})),tag:qa.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",qa.Mod(qa.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:qa.Opt(qa.Mod(qa.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.initTagsSchemas=void 0;const Ga=Pe;Va.initTagsSchemas=function(e,t){const i=Ga.StringNode.bind(void 0,t),n=e=>Ga.Mod(Ga.ObjectNode({replace:Ga.Opt(Ga.BooleanNode()),values:Ga.ListNode(Ga.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ga.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ga.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.initTextComponentSchemas=void 0;const Xa=Pe;Ka.initTextComponentSchemas=function(e,t){const i=Xa.Reference.bind(void 0,e),n=Xa.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Xa.Mod(Xa.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Xa.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Xa.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Xa.Opt(n()),font:Xa.Opt(n()),bold:Xa.Opt(Xa.BooleanNode()),italic:Xa.Opt(Xa.BooleanNode()),underlined:Xa.Opt(Xa.BooleanNode()),strikethrough:Xa.Opt(Xa.BooleanNode()),obfuscated:Xa.Opt(Xa.BooleanNode()),insertion:Xa.Opt(n()),clickEvent:Xa.Opt(Xa.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Xa.Opt(Xa.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{show_text:{value:Xa.Opt(i("text_component")),contents:Xa.Opt(i("text_component"))},show_item:{value:Xa.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Xa.Opt(Xa.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Xa.Opt(Xa.NumberNode({integer:!0})),tag:Xa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Xa.Opt(Xa.ObjectNode({name:Xa.Opt(n()),type:Xa.Opt(n()),id:Xa.Opt(n())})),contents:Xa.Opt(Xa.Mod(Xa.ObjectNode({name:Xa.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Xa.Opt(i("text_component_list"))};e.register("text_component_object",Xa.Mod(Xa.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Xa.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Xa.ObjectNode(s({translate:n(),with:Xa.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Xa.ObjectNode(s({score:Xa.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Xa.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Xa.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Xa.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Xa.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Xa.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Xa.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Xa.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Xa.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Xa.Opt(Xa.BooleanNode()),separator:Xa.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Xa.Mod(Xa.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var Ja={},Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initBiomeSchemas=void 0;const Za=Pe;Ya.initBiomeSchemas=function(e,t){const i=Za.StringNode.bind(void 0,t);e.register("biome",Za.Mod(Za.ObjectNode({temperature:Za.NumberNode(),downfall:Za.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Za.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:Za.Opt(Za.NumberNode({min:0,max:1})),effects:Za.ObjectNode({sky_color:Za.NumberNode({color:!0}),fog_color:Za.NumberNode({color:!0}),water_color:Za.NumberNode({color:!0}),water_fog_color:Za.NumberNode({color:!0}),grass_color:Za.Opt(Za.NumberNode({color:!0})),foliage_color:Za.Opt(Za.NumberNode({color:!0})),grass_color_modifier:Za.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Za.Opt(i()),mood_sound:Za.Opt(Za.ObjectNode({sound:i(),tick_delay:Za.NumberNode({integer:!0}),block_search_extent:Za.NumberNode({integer:!0}),offset:Za.NumberNode()})),additions_sound:Za.Opt(Za.ObjectNode({sound:i(),tick_chance:Za.NumberNode({min:0,max:1})})),music:Za.Opt(Za.ObjectNode({sound:i(),min_delay:Za.NumberNode({integer:!0,min:0}),max_delay:Za.NumberNode({integer:!0,min:0}),replace_current_music:Za.BooleanNode()})),particle:Za.Opt(Za.ObjectNode({options:Za.ObjectNode({type:i()}),probability:Za.NumberNode({min:0,max:1})}))}),spawners:Za.MapNode(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Za.Mod(Za.ListNode(Za.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Za.NumberNode({integer:!0}),minCount:Za.NumberNode({integer:!0}),maxCount:Za.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Za.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Za.Mod(Za.ObjectNode({energy_budget:Za.NumberNode(),charge:Za.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Za.MapNode(i({enum:["air","liquid"]}),Za.Mod(Za.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Za.ListNode(Za.Mod(Za.ListNode(i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initCarverSchemas=void 0;const es=Pe,ts=xa;Qa.initCarverSchemas=function(e,t){const i=es.Reference.bind(void 0,e),n=es.StringNode.bind(void 0,t),r={vertical_rotation:ts.FloatProvider(),shape:es.ObjectNode({distance_factor:ts.FloatProvider(),thickness:ts.FloatProvider(),width_smoothness:es.NumberNode({integer:!0,min:0}),horizontal_radius_factor:ts.FloatProvider(),vertical_radius_default_factor:es.NumberNode(),vertical_radius_center_factor:es.NumberNode()})},o={horizontal_radius_multiplier:ts.FloatProvider(),vertical_radius_multiplier:ts.FloatProvider(),floor_level:ts.FloatProvider({min:-1,max:1})};e.register("configured_carver",es.Mod(es.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:es.ObjectNode({probability:es.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:ts.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:es.Opt(es.ObjectNode({debug_mode:es.Opt(es.BooleanNode()),air_state:es.Opt(i("block_state")),water_state:es.Opt(i("block_state")),lava_state:es.Opt(i("block_state")),barrier_state:es.Opt(i("block_state"))})),[es.Switch]:["pop",{push:"type"}],[es.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var is={};Object.defineProperty(is,"__esModule",{value:!0}),is.initDecoratorSchemas=void 0;const ns=Pe,rs=xa;is.initDecoratorSchemas=function(e,t){const i=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t);e.register("decorator",ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:ns.NumberNode({integer:!0,min:0})},"minecraft:count":{count:rs.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:rs.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:ns.NumberNode(),below_noise:ns.NumberNode({integer:!0}),above_noise:ns.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:ns.NumberNode({integer:!0}),noise_factor:ns.NumberNode(),noise_offset:ns.Opt(ns.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:ns.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:ns.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:rs.IntProvider({min:-16,max:16}),y_spread:rs.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:ns.Opt(ns.NumberNode({integer:!0})),max_inclusive:ns.Opt(ns.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:ns.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var os={},as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initProcessorListSchemas=as.Processors=void 0;const ss=Pe;as.initProcessorListSchemas=function(e,t){const i=ss.Reference.bind(void 0,e),n=ss.StringNode.bind(void 0,t);as.Processors=ss.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",ss.Mod(ss.ObjectNode({processors:ss.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",ss.Mod(ss.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[ss.Switch]:[{push:"processor_type"}],[ss.Case]:{"minecraft:block_age":{mossiness:ss.NumberNode()},"minecraft:block_ignore":{blocks:ss.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:ss.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:ss.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:ss.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",ss.Mod(ss.ObjectNode({position_predicate:ss.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:ss.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:ss.Opt(ss.NumberNode({min:0,max:255,integer:!0})),max_dist:ss.Opt(ss.NumberNode({min:0,max:255,integer:!0})),min_chance:ss.Opt(ss.NumberNode({min:0,max:1})),max_chance:ss.Opt(ss.NumberNode({min:0,max:1}))};e.register("pos_rule_test",ss.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[ss.Switch]:[{push:"predicate_type"}],[ss.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",ss.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[ss.Switch]:[{push:"predicate_type"}],[ss.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:ss.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:ss.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(os,"__esModule",{value:!0}),os.initFeatureSchemas=void 0;const cs=Pe,ls=xa,us=as;os.initFeatureSchemas=function(e,t){const i=cs.Reference.bind(void 0,e),n=cs.StringNode.bind(void 0,t),r=cs.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=cs.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:cs.Opt(cs.NumberNode({integer:!0,min:1})),xz_spread:cs.Opt(cs.NumberNode({integer:!0,min:0})),y_spread:cs.Opt(cs.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:ls.IntProvider({min:0,max:8}),half_height:cs.NumberNode({integer:!0,min:0,max:4}),targets:cs.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:cs.Opt(cs.NumberNode({integer:!0}))},d=cs.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:cs.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:cs.NumberNode({min:0,max:1}),targets:cs.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:ls.IntProvider({min:1,max:128}),vertical_range:cs.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:cs.NumberNode({min:0,max:1}),extra_edge_column_chance:cs.NumberNode({min:0,max:1}),vegetation_chance:cs.NumberNode({min:0,max:1}),xz_radius:ls.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",cs.Mod(cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:cs.ObjectNode({[cs.Switch]:["pop",{push:"type"}],[cs.Case]:{"minecraft:bamboo":{probability:cs.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:ls.IntProvider({min:0,max:3}),height:ls.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:cs.BooleanNode(),layers:cs.ListNode(cs.ObjectNode({height:ls.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:ls.IntProvider({min:0,max:16}),rim_size:ls.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:cs.NumberNode({integer:!0,min:1,max:512}),height:ls.IntProvider({min:0,max:128}),radius:ls.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:cs.NumberNode({integer:!0,min:0,max:64}),height_deviation:cs.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:ls.IntProvider({min:0,max:128}),density:ls.FloatProvider({min:0,max:2}),wetness:ls.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:cs.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:cs.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:cs.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:cs.BooleanNode(),exit:cs.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:cs.Opt(cs.BooleanNode()),crystal_beam_target:cs.Opt(i("block_pos")),spikes:cs.ListNode(cs.ObjectNode({centerX:cs.Opt(cs.NumberNode({integer:!0})),centerZ:cs.Opt(cs.NumberNode({integer:!0})),radius:cs.Opt(cs.NumberNode({integer:!0})),height:cs.Opt(cs.NumberNode({integer:!0})),guarded:cs.Opt(cs.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:cs.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:cs.NumberNode({integer:!0,min:0,max:7}),fossil_structures:cs.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:cs.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:us.Processors,overlay_processors:us.Processors},"minecraft:geode":{blocks:cs.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:cs.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:cs.ObjectNode({filling:cs.Opt(cs.NumberNode({min:.01,max:50})),inner_layer:cs.Opt(cs.NumberNode({min:.01,max:50})),middle_layer:cs.Opt(cs.NumberNode({min:.01,max:50})),outer_layer:cs.Opt(cs.NumberNode({min:.01,max:50}))}),crack:cs.ObjectNode({generate_crack_chance:cs.Opt(cs.NumberNode({min:0,max:1})),base_crack_size:cs.Opt(cs.NumberNode({min:0,max:5})),crack_point_offset:cs.Opt(cs.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:cs.Opt(cs.NumberNode({min:0,max:1})),use_potential_placements_chance:cs.Opt(cs.NumberNode({min:0,max:1})),use_alternate_layer0_chance:cs.Opt(cs.NumberNode({min:0,max:1})),placements_require_layer0_alternate:cs.Opt(cs.BooleanNode()),outer_wall_distance:cs.Opt(ls.IntProvider({min:1,max:20})),distribution_points:cs.Opt(ls.IntProvider({min:1,max:20})),point_offset:cs.Opt(ls.IntProvider({min:0,max:10})),min_gen_offset:cs.Opt(cs.NumberNode({integer:!0})),max_gen_offset:cs.Opt(cs.NumberNode({integer:!0})),invalid_blocks_threshold:cs.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:cs.Opt(cs.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:cs.Opt(cs.NumberNode({min:0,max:1})),can_place_on_floor:cs.Opt(cs.BooleanNode()),can_place_on_ceiling:cs.Opt(cs.BooleanNode()),can_place_on_wall:cs.Opt(cs.BooleanNode()),can_be_placed_on:cs.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:cs.Opt(cs.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:cs.Opt(cs.NumberNode({integer:!0,min:1,max:512})),column_radius:ls.IntProvider({min:0,max:60}),height_scale:ls.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:cs.NumberNode({min:0,max:1}),stalactite_bluntness:ls.FloatProvider({min:.1,max:10}),stalagmite_bluntness:ls.FloatProvider({min:.1,max:10}),wind_speed:ls.FloatProvider({min:0,max:2}),min_radius_for_wind:cs.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:cs.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:cs.NumberNode({integer:!0,min:1}),spread_height:cs.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:ls.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_directional_spread:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_spread_radius2:cs.Opt(cs.NumberNode({min:0,max:1})),chance_of_spread_radius3:cs.Opt(cs.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:cs.ListNode(cs.ObjectNode({chance:cs.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:cs.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:cs.NumberNode({integer:!0,min:1,max:64}),root_radius:cs.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:cs.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:cs.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:cs.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:cs.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:cs.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:cs.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:ls.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:cs.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:cs.ListNode(o)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:cs.NumberNode({integer:!0}),hole_count:cs.NumberNode({integer:!0}),requires_block_below:cs.BooleanNode(),valid_blocks:cs.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:cs.Opt(cs.BooleanNode()),force_dirt:cs.Opt(cs.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:cs.NumberNode({integer:!0,min:0,max:32}),height_rand_a:cs.NumberNode({integer:!0,min:0,max:24}),height_rand_b:cs.NumberNode({integer:!0,min:0,max:24}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:bending_trunk_placer":{bend_length:ls.IntProvider({min:1,max:64}),min_height_for_leaves:cs.Opt(cs.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:ls.IntProvider({min:0,max:16}),offset:ls.IntProvider({min:0,max:16}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:blob_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:cs.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:ls.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:ls.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:ls.IntProvider({min:1,max:512}),leaf_placement_attempts:cs.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:ls.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:cs.ListNode(cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:cs.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:cs.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:cs.NumberNode({integer:!0,min:1}),spread_height:cs.NumberNode({integer:!0,min:1}),max_height:cs.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:cs.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:cs.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:cs.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",cs.Mod(cs.ObjectNode({feature:r,placement:cs.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",cs.Mod(cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:cs.Opt(cs.NumberNode({min:0,max:80})),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:two_layers_feature_size":{limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:81})),lower_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),upper_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:80})),upper_limit:cs.Opt(cs.NumberNode({integer:!0,min:0,max:80})),lower_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),middle_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16})),upper_size:cs.Opt(cs.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:cs.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:cs.Mod(cs.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",cs.Mod(cs.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:ls.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:cs.Mod(cs.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:cs.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:cs.NumberNode({min:-1,max:1}),high_chance:cs.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:cs.ListNode(i("block_state")),high_states:cs.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:cs.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:ls.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:cs.ListNode(cs.Mod(cs.ObjectNode({weight:cs.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:cs.Opt(cs.ListNode(cs.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",cs.Mod(cs.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[cs.Switch]:[{push:"type"}],[cs.Case]:{"minecraft:all_of":{predicates:cs.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:cs.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:cs.ListNode(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:cs.ListNode(n({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initNoiseSettingsSchemas=void 0;const hs=Pe,ps=xa;ds.initNoiseSettingsSchemas=function(e,t){const i=hs.Reference.bind(void 0,e),n=hs.StringNode.bind(void 0,t);e.register("noise_settings",hs.Mod(hs.ObjectNode({sea_level:hs.NumberNode({integer:!0}),disable_mob_generation:hs.BooleanNode(),noise_caves_enabled:hs.BooleanNode(),noodle_caves_enabled:hs.BooleanNode(),aquifers_enabled:hs.BooleanNode(),ore_veins_enabled:hs.BooleanNode(),legacy_random_source:hs.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:hs.ObjectNode({min_y:hs.NumberNode({integer:!0,min:-2048,max:2047}),height:hs.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:hs.NumberNode({integer:!0}),size_vertical:hs.NumberNode({integer:!0}),island_noise_override:hs.Opt(hs.BooleanNode()),amplified:hs.Opt(hs.BooleanNode()),large_biomes:hs.Opt(hs.BooleanNode()),sampling:hs.ObjectNode({xz_scale:hs.NumberNode(),y_scale:hs.NumberNode(),xz_factor:hs.NumberNode(),y_factor:hs.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),surface_rule:i("material_rule"),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>ps.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",hs.ObjectNode({target:hs.NumberNode(),size:hs.NumberNode({integer:!0,min:0}),offset:hs.NumberNode({integer:!0})})),e.register("generator_structures",hs.ObjectNode({stronghold:hs.Opt(hs.ObjectNode({distance:hs.NumberNode({integer:!0,min:0,max:1023}),spread:hs.NumberNode({integer:!0,min:0,max:1023}),count:hs.NumberNode({integer:!0,min:1,max:4095})})),structures:hs.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),hs.Mod(hs.ObjectNode({spacing:hs.NumberNode({integer:!0,min:0,max:4096}),separation:hs.Mod(hs.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:hs.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",hs.Mod(hs.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:hs.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",hs.Mod(hs.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",hs.Mod(hs.ChoiceNode([{type:"number",node:hs.NumberNode()},{type:"object",node:hs.ObjectNode({coordinate:hs.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:hs.ListNode(hs.ObjectNode({location:hs.NumberNode(),derivative:hs.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ms={};Object.defineProperty(ms,"__esModule",{value:!0}),ms.initStructureFeatureSchemas=void 0;const fs=Pe;ms.initStructureFeatureSchemas=function(e,t){const i=fs.StringNode.bind(void 0,t),n=fs.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:fs.NumberNode({integer:!0})};e.register("configured_structure_feature",fs.Mod(fs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:fs.ObjectNode({[fs.Switch]:["pop",{push:"type"}],[fs.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:fs.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:fs.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:fs.NumberNode({min:0,max:1}),cluster_probability:fs.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:fs.Opt(fs.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.initSurfaceRuleSchemas=void 0;const _s=Pe;gs.initSurfaceRuleSchemas=function(e,t){const i=_s.StringNode.bind(void 0,t),n=_s.Reference.bind(void 0,e);e.register("material_rule",_s.Mod(_s.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[_s.Switch]:[{push:"type"}],[_s.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:_s.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",_s.Mod(_s.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[_s.Switch]:[{push:"type"}],[_s.Case]:{"minecraft:biome":{biome_is:_s.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:_s.NumberNode(),max_threshold:_s.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:_s.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:_s.BooleanNode(),add_surface_secondary_depth:_s.BooleanNode()},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:_s.NumberNode({integer:!0}),surface_depth_multiplier:_s.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_s.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:_s.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_s.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var bs={};Object.defineProperty(bs,"__esModule",{value:!0}),bs.initTemplatePoolSchemas=void 0;const vs=Pe,ys=as;bs.initTemplatePoolSchemas=function(e,t){const i=vs.Reference.bind(void 0,e),n=vs.StringNode.bind(void 0,t);e.register("template_pool",vs.Mod(vs.ObjectNode({name:n(),fallback:n(),elements:vs.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",vs.Mod(vs.ObjectNode({weight:vs.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",vs.Mod(vs.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[vs.Switch]:[{push:"element_type"}],[vs.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ys.Processors},"minecraft:list_pool_element":{elements:vs.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ys.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initWorldgenSchemas=void 0;const ws=Ya,xs=Qa,Ns=is,ks=os,As=ds,Cs=as,Os=ms,Ss=gs,Es=bs;Ja.initWorldgenSchemas=function(e,t){Cs.initProcessorListSchemas(e,t),ws.initBiomeSchemas(e,t),xs.initCarverSchemas(e,t),Ns.initDecoratorSchemas(e,t),ks.initFeatureSchemas(e,t),As.initNoiseSettingsSchemas(e,t),Os.initStructureFeatureSchemas(e,t),Ss.initSurfaceRuleSchemas(e,t),Es.initTemplatePoolSchemas(e,t)};var Fs={};Object.defineProperty(Fs,"__esModule",{value:!0}),Fs.initWorldSettingsSchemas=void 0;const Ds=Pe;Fs.initWorldSettingsSchemas=function(e,t){const i=Ds.Reference.bind(void 0,e),n=Ds.StringNode.bind(void 0,t);e.register("world_settings",Ds.Mod(Ds.ObjectNode({generate_features:Ds.BooleanNode(),bonus_chest:Ds.BooleanNode(),seed:Ds.NumberNode({integer:!0}),dimensions:Ds.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ha,"__esModule",{value:!0}),ha.initSchemas=void 0;const Bs=pa,Ls=fa,Ms=xa,Ts=Na,Rs=Ca,$s=Ea,js=Ba,Is=Ta,Ps=Pa,zs=Ua,Us=Ha,Ws=Va,Hs=Ka,qs=Ja,Vs=Fs;ha.initSchemas=function(e,t){Ms.initCommonSchemas(e,t),Bs.initAdvancementSchemas(e,t),Ls.initAssetsSchemas(e,t),Ts.initConditionSchemas(e,t),$s.initDimensionTypeSchemas(e,t),Rs.initDimensionSchemas(e,t),js.initItemModifierSchemas(e,t),Is.initLootTableSchemas(e,t),Ps.initPackMcmetaSchemas(e,t),zs.initPredicatesSchemas(e,t),Us.initRecipeSchemas(e,t),Ws.initTagsSchemas(e,t),Hs.initTextComponentSchemas(e,t),qs.initWorldgenSchemas(e,t),Vs.initWorldSettingsSchemas(e,t)};var Gs=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Ks=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Xs=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Gs(t,e,i);return Ks(t,e),t};Object.defineProperty(ua,"__esModule",{value:!0});var Js=ua.getSchemas=ua.getCollections=void 0;const Ys=Pe,Zs=da,Qs=ha;var ec=ua.lootContext=Xs(Ra);var tc=ua.getCollections=function(){const e=new Ys.CollectionRegistry;return Zs.initCollections(e),e};Js=ua.getSchemas=function(e){const t=new Ys.SchemaRegistry;return Qs.initSchemas(t,e),t};var ic=Object.freeze(Object.assign(Object.create(null),ua,{[Symbol.toStringTag]:"Module",get getSchemas(){return Js},get getCollections(){return tc},lootContext:ec,default:ua})),nc={},rc={};Object.defineProperty(rc,"__esModule",{value:!0}),rc.initCollections=void 0,rc.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),e.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])};var oc={},ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initAdvancementSchemas=void 0;const sc=Pe;ac.initAdvancementSchemas=function(e,t){const i=sc.Reference.bind(void 0,e),n=sc.StringNode.bind(void 0,t),r=sc.ChoiceNode([{type:"object",node:sc.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:sc.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",sc.Mod(sc.ObjectNode({display:sc.Opt(sc.Mod(sc.ObjectNode({icon:sc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:sc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:sc.Opt(n()),frame:sc.Opt(n({enum:["task","challenge","goal"]})),show_toast:sc.Opt(sc.BooleanNode()),announce_to_chat:sc.Opt(sc.BooleanNode()),hidden:sc.Opt(sc.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:sc.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:sc.MapNode(n(),i("advancement_criteria")),requirements:sc.Opt(sc.ListNode(sc.ListNode(n()))),rewards:sc.Opt(sc.ObjectNode({function:sc.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:sc.Opt(sc.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:sc.Opt(sc.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:sc.Opt(sc.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",sc.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:sc.Opt(sc.ObjectNode({player:sc.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[sc.Switch]:["pop",{push:"trigger"}],[sc.Case]:{"minecraft:bee_nest_destroyed":{block:sc.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:sc.Opt(sc.NumberNode({integer:!0})),item:sc.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:sc.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:sc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:sc.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:sc.Opt(sc.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:sc.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:sc.Opt(sc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),sc.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:sc.Opt(r)},"minecraft:enter_block":{block:sc.Opt(n({validator:"resource",params:{pool:"block"}})),state:sc.Opt(sc.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:sc.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:sc.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:sc.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:sc.Opt(i("location_predicate")),distance:sc.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:sc.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:sc.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:sc.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:sc.Opt(sc.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:sc.Opt(sc.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:sc.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:sc.Opt(i("item_predicate")),location:sc.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:sc.Opt(sc.ListNode(r))},"minecraft:levitation":{distance:sc.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:sc.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:sc.Opt(i("location_predicate")),distance:sc.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:sc.Opt(n({validator:"resource",params:{pool:"block"}})),state:sc.Opt(sc.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:sc.Opt(i("item_predicate")),location:sc.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:sc.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:sc.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:sc.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:sc.Opt(i("location_predicate")),distance:sc.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:sc.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:sc.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:sc.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:sc.Opt(i("entity_predicate")),item:sc.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:sc.Opt(i("float_bounds"))},"minecraft:used_totem":{item:sc.Opt(i("item_predicate"))},"minecraft:using_item":{item:sc.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:sc.Opt(i("entity_predicate")),item:sc.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:sc.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var cc={},lc={};Object.defineProperty(lc,"__esModule",{value:!0}),lc.initModelSchemas=void 0;const uc=Pe;lc.initModelSchemas=function(e,t){uc.Reference.bind(void 0,e);const i=uc.StringNode.bind(void 0,t),n=(e,t,i)=>uc.ListNode(uc.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=uc.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",uc.Mod(uc.ObjectNode({parent:uc.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:uc.Opt(uc.BooleanNode()),gui_light:uc.Opt(i({enum:"gui_light"})),textures:uc.Opt(uc.MapNode(i(),r)),elements:uc.Opt(uc.ListNode(uc.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:uc.Opt(uc.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:uc.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:uc.Opt(uc.BooleanNode())})),shade:uc.Opt(uc.BooleanNode()),faces:uc.MapNode(i({enum:"direction"}),uc.ObjectNode({texture:r,uv:uc.Opt(n(4)),cullface:uc.Opt(i({enum:"direction"})),rotation:uc.Opt(uc.NumberNode({integer:!0})),tintindex:uc.Opt(uc.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:uc.Opt(uc.MapNode(i({enum:"display_position"}),uc.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:uc.Opt(uc.ListNode(uc.ObjectNode({predicate:uc.MapNode(i({enum:"item_model_predicates"}),uc.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initBlockDefinitionSchemas=void 0;const hc=Pe;dc.initBlockDefinitionSchemas=function(e,t){const i=hc.Reference.bind(void 0,e),n=hc.StringNode.bind(void 0,t);e.register("block_definition",hc.Mod(hc.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:hc.ObjectNode({variants:hc.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:hc.ObjectNode({multipart:hc.ListNode(hc.ObjectNode({when:hc.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:hc.Opt(hc.NumberEnum({integer:!0,values:[0,90,180,270]})),y:hc.Opt(hc.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:hc.Opt(hc.BooleanNode())};e.register("model_variant",hc.ChoiceNode([{type:"object",node:hc.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:hc.ListNode(hc.ObjectNode(c(s({},r),{weight:hc.Opt(hc.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",hc.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:hc.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:hc.ObjectNode({OR:hc.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(cc,"__esModule",{value:!0}),cc.initAssetsSchemas=void 0;const pc=lc,mc=dc;cc.initAssetsSchemas=function(e,t){mc.initBlockDefinitionSchemas(e,t),pc.initModelSchemas(e,t)};var fc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):r({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:r({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(fc);var gc={};Object.defineProperty(gc,"__esModule",{value:!0}),gc.initConditionSchemas=void 0;const _c=Pe,bc=fc;gc.initConditionSchemas=function(e,t){const i=_c.Reference.bind(void 0,e),n=_c.StringNode.bind(void 0,t);e.register("predicate",_c.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",_c.Mod(_c.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[_c.Switch]:[{push:"condition"}],[_c.Case]:bc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var vc={};Object.defineProperty(vc,"__esModule",{value:!0}),vc.initDimensionSchemas=void 0;const yc=Pe,wc=fc;vc.initDimensionSchemas=function(e,t){const i=yc.Reference.bind(void 0,e),n=yc.StringNode.bind(void 0,t),r=yc.ChoiceNode([{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:i("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});e.register("dimension",yc.Mod(yc.ObjectNode({type:wc.DimensionTypePresets(i("dimension_type")),generator:yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[yc.Switch]:[{push:"type"}],[yc.Case]:{"minecraft:noise":{seed:yc.NumberNode({integer:!0}),settings:wc.NoiseSettingsPresets(i("noise_settings")),biome_source:yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[yc.Switch]:[{push:"type"}],[yc.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:yc.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:yc.Mod(yc.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:yc.Opt(yc.NumberNode({integer:!0,min:0,max:62})),biomes:wc.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:yc.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:yc.ObjectNode({biome:yc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:yc.Opt(yc.BooleanNode()),features:yc.Opt(yc.BooleanNode()),layers:yc.ListNode(i("generator_layer")),structure_overrides:yc.ListNode(r)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const o=yc.ChoiceNode([{type:"number",node:yc.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:yc.ListNode(yc.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",yc.Mod(yc.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:yc.ObjectNode({temperature:o,humidity:o,continentalness:o,erosion:o,weirdness:o,depth:o,offset:yc.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var xc={};Object.defineProperty(xc,"__esModule",{value:!0}),xc.initDimensionTypeSchemas=void 0;const Nc=Pe,kc=fc;xc.initDimensionTypeSchemas=function(e,t){const i=Nc.StringNode.bind(void 0,t);e.register("dimension_type",Nc.Mod(Nc.ObjectNode({ultrawarm:Nc.BooleanNode(),natural:Nc.BooleanNode(),piglin_safe:Nc.BooleanNode(),respawn_anchor_works:Nc.BooleanNode(),bed_works:Nc.BooleanNode(),has_raids:Nc.BooleanNode(),has_skylight:Nc.BooleanNode(),has_ceiling:Nc.BooleanNode(),coordinate_scale:Nc.NumberNode({min:1e-5,max:3e7}),ambient_light:Nc.NumberNode(),fixed_time:Nc.Opt(Nc.NumberNode({integer:!0})),logical_height:Nc.NumberNode({integer:!0,min:0,max:4064}),effects:Nc.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:Nc.NumberNode({integer:!0,min:-2032,max:2031}),height:Nc.NumberNode({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>kc.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2032&&n.add(t.push("height"),"error.min_y_plus_height",2032),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Ac={};Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.initItemModifierSchemas=void 0;const Cc=Pe,Oc=fc;Ac.initItemModifierSchemas=function(e,t){const i=Cc.Reference.bind(void 0,e),n=Cc.StringNode.bind(void 0,t);e.register("item_modifier",Cc.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Cc.Opt(Cc.ListNode(i("condition")))};e.register("function",Cc.Mod(Cc.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Cc.Switch]:[{push:"function"}],[Cc.Case]:Oc.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Sc={},Ec={};Object.defineProperty(Ec,"__esModule",{value:!0}),Ec.LootFunctions=Ec.LootConditions=Ec.LootCopySources=Ec.LootEntitySources=Ec.LootTableTypes=void 0,Ec.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ec.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ec.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ec.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ec.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.initLootTableSchemas=void 0;const Fc=Pe,Dc=Ec,Bc=fc;Sc.initLootTableSchemas=function(e,t){const i=Fc.Reference.bind(void 0,e),n=Fc.StringNode.bind(void 0,t),r={conditions:Fc.Opt(Fc.ListNode(i("loot_condition")))},o=s({functions:Fc.Opt(Fc.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Dc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Fc.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Fc.SwitchNode(r)}const c=a(Dc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Dc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Dc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Dc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Fc.Mod(Fc.ObjectNode({type:Fc.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Fc.Opt(Fc.ListNode(Fc.Mod(Fc.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:Fc.Opt(i("number_provider")),entries:Fc.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Fc.Opt(Fc.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Fc.Mod(Fc.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Fc.Opt(Fc.Mod(Fc.NumberNode({integer:!0,min:1}),h)),quality:Fc.Opt(Fc.Mod(Fc.NumberNode({integer:!0}),h)),[Fc.Switch]:[{push:"type"}],[Fc.Case]:{"minecraft:alternatives":s({children:Fc.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Fc.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Fc.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Fc.Opt(Fc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Fc.Mod(Fc.ObjectNode({function:l,[Fc.Switch]:[{push:"function"}],[Fc.Case]:Bc.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Fc.Mod(Fc.ObjectNode({condition:c,[Fc.Switch]:[{push:"condition"}],[Fc.Case]:Bc.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Fc.Mod(Fc.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Fc.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Lc={};Object.defineProperty(Lc,"__esModule",{value:!0}),Lc.initPackMcmetaSchemas=void 0;const Mc=Pe;Lc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Mc.Mod(Mc.ObjectNode({pack:Mc.Mod(Mc.ObjectNode({pack_format:Mc.Mod(Mc.NumberNode({integer:!0,min:9,max:9}),{default:()=>9,canUpdate:(e,t)=>9!==t,update:()=>[{name:"pack_format",params:[9],newValue:9}]}),description:Mc.Reference(e,"text_component")}),{default:()=>({pack_format:9,description:""})})}),{default:()=>({pack:{pack_format:9,description:""}})}))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initPredicatesSchemas=void 0;const Rc=Pe;Tc.initPredicatesSchemas=function(e,t){const i=Rc.Reference.bind(void 0,e),n=Rc.StringNode.bind(void 0,t),r=Rc.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Rc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Rc.ObjectNode({min:Rc.Opt(Rc.NumberNode({integer:!0})),max:Rc.Opt(Rc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Rc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Rc.ObjectNode({items:Rc.Opt(Rc.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Rc.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Rc.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Rc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Rc.Opt(Rc.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Rc.ObjectNode({enchantment:Rc.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Rc.ObjectNode({blocks:Rc.Opt(Rc.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Rc.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Rc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Rc.Opt(Rc.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Rc.ObjectNode({fluid:Rc.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Rc.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Rc.Opt(Rc.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Rc.ObjectNode({position:Rc.Opt(Rc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Rc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Rc.Opt(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:Rc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Rc.Opt(Rc.ObjectNode({light:i("int_bounds")})),smokey:Rc.Opt(Rc.BooleanNode()),block:Rc.Opt(i("block_predicate")),fluid:Rc.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Rc.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Rc.ObjectNode({gamemode:Rc.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Rc.Opt(Rc.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Rc.ChoiceNode([{type:"boolean",node:Rc.BooleanNode(),change:e=>!0},{type:"object",node:Rc.MapNode(n(),Rc.BooleanNode())}]))),recipes:Rc.Opt(Rc.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Rc.BooleanNode())),stats:Rc.Opt(Rc.ListNode(i("statistic_predicate"))),looking_at:Rc.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Rc.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Rc.Opt(Rc.BooleanNode()),visible:Rc.Opt(Rc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Rc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Rc.ObjectNode({type:Rc.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Rc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Rc.Opt(n({validator:"team"})),location:Rc.Opt(i("location_predicate")),stepping_on:Rc.Opt(i("location_predicate")),distance:Rc.Opt(i("distance_predicate")),flags:Rc.Opt(Rc.ObjectNode({is_on_fire:Rc.Opt(Rc.BooleanNode()),is_sneaking:Rc.Opt(Rc.BooleanNode()),is_sprinting:Rc.Opt(Rc.BooleanNode()),is_swimming:Rc.Opt(Rc.BooleanNode()),is_baby:Rc.Opt(Rc.BooleanNode())})),equipment:Rc.Opt(Rc.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Rc.Opt(i("player_predicate")),vehicle:Rc.Opt(i("entity_predicate")),passenger:Rc.Opt(i("entity_predicate")),targeted_entity:Rc.Opt(i("entity_predicate")),lightning_bolt:Rc.Opt(Rc.ObjectNode({blocks_set_on_fire:Rc.Opt(i("int_bounds")),entity_struck:Rc.Opt(i("entity_predicate"))})),fishing_hook:Rc.Opt(Rc.ObjectNode({in_open_water:Rc.Opt(Rc.BooleanNode())})),effects:Rc.Opt(Rc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Rc.ObjectNode({is_explosion:Rc.Opt(Rc.BooleanNode()),is_fire:Rc.Opt(Rc.BooleanNode()),is_magic:Rc.Opt(Rc.BooleanNode()),is_projectile:Rc.Opt(Rc.BooleanNode()),is_lightning:Rc.Opt(Rc.BooleanNode()),bypasses_armor:Rc.Opt(Rc.BooleanNode()),bypasses_invulnerability:Rc.Opt(Rc.BooleanNode()),bypasses_magic:Rc.Opt(Rc.BooleanNode()),source_entity:Rc.Opt(i("entity_predicate")),direct_entity:Rc.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Rc.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Rc.Opt(Rc.BooleanNode()),source_entity:Rc.Opt(i("entity_predicate")),type:Rc.Opt(i("damage_source_predicate"))},{context:"damage"}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initRecipeSchemas=void 0;const jc=Pe;$c.initRecipeSchemas=function(e,t){const i=jc.Reference.bind(void 0,e),n=jc.StringNode.bind(void 0,t);e.register("recipe",jc.Mod(jc.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[jc.Switch]:[{push:"type"}],[jc.Case]:{"minecraft:crafting_shaped":{group:jc.Opt(n({enum:"recipe_group",additional:!0})),pattern:jc.ListNode(n()),key:jc.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:jc.Opt(n()),ingredients:jc.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:jc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:jc.Opt(jc.NumberNode()),cookingtime:jc.Opt(jc.Mod(jc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:jc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:jc.Opt(jc.NumberNode()),cookingtime:jc.Opt(jc.Mod(jc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:jc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:jc.Opt(jc.NumberNode()),cookingtime:jc.Opt(jc.Mod(jc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:jc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:jc.Opt(jc.NumberNode()),cookingtime:jc.Opt(jc.Mod(jc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:jc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:jc.NumberNode({integer:!0})},"minecraft:smithing":{group:jc.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",jc.Mod(jc.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:jc.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",jc.Mod(jc.ObjectNode({item:jc.Opt(n({validator:"resource",params:{pool:"item"}})),tag:jc.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",jc.Mod(jc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:jc.Opt(jc.Mod(jc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ic={};Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initTagsSchemas=void 0;const Pc=Pe;Ic.initTagsSchemas=function(e,t){const i=Pc.StringNode.bind(void 0,t),n=e=>Pc.Mod(Pc.ObjectNode({replace:Pc.Opt(Pc.BooleanNode()),values:Pc.ListNode(Pc.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Pc.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Pc.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_decorator_tag",n("$worldgen/configured_decorator")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("configured_structure_feature_tag",n("$worldgen/configured_structure_feature")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool"))};var zc={};Object.defineProperty(zc,"__esModule",{value:!0}),zc.initTextComponentSchemas=void 0;const Uc=Pe;zc.initTextComponentSchemas=function(e,t){const i=Uc.Reference.bind(void 0,e),n=Uc.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Uc.Mod(Uc.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Uc.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Uc.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Uc.Opt(n()),font:Uc.Opt(n()),bold:Uc.Opt(Uc.BooleanNode()),italic:Uc.Opt(Uc.BooleanNode()),underlined:Uc.Opt(Uc.BooleanNode()),strikethrough:Uc.Opt(Uc.BooleanNode()),obfuscated:Uc.Opt(Uc.BooleanNode()),insertion:Uc.Opt(n()),clickEvent:Uc.Opt(Uc.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Uc.Switch]:[{push:"action"}],[Uc.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Uc.Opt(Uc.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Uc.Switch]:[{push:"action"}],[Uc.Case]:{show_text:{value:Uc.Opt(i("text_component")),contents:Uc.Opt(i("text_component"))},show_item:{value:Uc.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Uc.Opt(Uc.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Uc.Opt(Uc.NumberNode({integer:!0})),tag:Uc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Uc.Opt(Uc.ObjectNode({name:Uc.Opt(n()),type:Uc.Opt(n()),id:Uc.Opt(n())})),contents:Uc.Opt(Uc.Mod(Uc.ObjectNode({name:Uc.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Uc.Opt(i("text_component_list"))};e.register("text_component_object",Uc.Mod(Uc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Uc.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Uc.ObjectNode(s({translate:n(),with:Uc.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Uc.ObjectNode(s({score:Uc.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Uc.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Uc.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Uc.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Uc.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Uc.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Uc.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Uc.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Uc.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Uc.Opt(Uc.BooleanNode()),separator:Uc.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Uc.Mod(Uc.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var Wc={},Hc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=fc;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=t.Mod(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:t.NumberNode({integer:!0}),minCount:t.NumberNode({integer:!0}),maxCount:t.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",t.Mod(t.ObjectNode({temperature:t.NumberNode(),downfall:t.NumberNode(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:t.Opt(o({enum:["none","frozen"]})),category:o({enum:"biome_category"}),creature_spawn_probability:t.Opt(t.NumberNode({min:0,max:1})),effects:t.ObjectNode({sky_color:t.NumberNode({color:!0}),fog_color:t.NumberNode({color:!0}),water_color:t.NumberNode({color:!0}),water_fog_color:t.NumberNode({color:!0}),grass_color:t.Opt(t.NumberNode({color:!0})),foliage_color:t.Opt(t.NumberNode({color:!0})),grass_color_modifier:t.Opt(o({enum:["none","dark_forest","swamp"]})),ambient_sound:t.Opt(o()),mood_sound:t.Opt(t.ObjectNode({sound:o(),tick_delay:t.NumberNode({integer:!0}),block_search_extent:t.NumberNode({integer:!0}),offset:t.NumberNode()})),additions_sound:t.Opt(t.ObjectNode({sound:o(),tick_chance:t.NumberNode({min:0,max:1})})),music:t.Opt(t.ObjectNode({sound:o(),min_delay:t.NumberNode({integer:!0,min:0}),max_delay:t.NumberNode({integer:!0,min:0}),replace_current_music:t.BooleanNode()})),particle:t.Opt(t.ObjectNode({options:t.ObjectNode({type:o()}),probability:t.NumberNode({min:0,max:1})}))}),spawners:t.MapNode(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:t.MapNode(o({validator:"resource",params:{pool:"entity_type"}}),t.Mod(t.ObjectNode({energy_budget:t.NumberNode(),charge:t.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:t.MapNode(o({enum:["air","liquid"]}),t.Mod(i.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:t.ListNode(t.Mod(i.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}}(Hc);var qc={};Object.defineProperty(qc,"__esModule",{value:!0}),qc.initCarverSchemas=void 0;const Vc=Pe,Gc=fc;qc.initCarverSchemas=function(e,t){const i=Vc.Reference.bind(void 0,e),n=Vc.StringNode.bind(void 0,t),r={vertical_rotation:Gc.FloatProvider(),shape:Vc.ObjectNode({distance_factor:Gc.FloatProvider(),thickness:Gc.FloatProvider(),width_smoothness:Vc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Gc.FloatProvider(),vertical_radius_default_factor:Vc.NumberNode(),vertical_radius_center_factor:Vc.NumberNode()})},o={horizontal_radius_multiplier:Gc.FloatProvider(),vertical_radius_multiplier:Gc.FloatProvider(),floor_level:Gc.FloatProvider({min:-1,max:1})};e.register("configured_carver",Vc.Mod(Vc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Vc.ObjectNode({probability:Vc.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Gc.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:Vc.Opt(Vc.ObjectNode({debug_mode:Vc.Opt(Vc.BooleanNode()),air_state:Vc.Opt(i("block_state")),water_state:Vc.Opt(i("block_state")),lava_state:Vc.Opt(i("block_state")),barrier_state:Vc.Opt(i("block_state"))})),[Vc.Switch]:["pop",{push:"type"}],[Vc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Kc={};Object.defineProperty(Kc,"__esModule",{value:!0}),Kc.initDecoratorSchemas=void 0;const Xc=Pe,Jc=fc;Kc.initDecoratorSchemas=function(e,t){const i=Xc.Reference.bind(void 0,e),n=Xc.StringNode.bind(void 0,t);e.register("decorator",Xc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Xc.Switch]:[{push:"type"}],[Xc.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Xc.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Jc.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Jc.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Xc.NumberNode(),below_noise:Xc.NumberNode({integer:!0}),above_noise:Xc.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Xc.NumberNode({integer:!0}),noise_factor:Xc.NumberNode(),noise_offset:Xc.Opt(Xc.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Xc.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Xc.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:Jc.IntProvider({min:-16,max:16}),y_spread:Jc.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Xc.Opt(Xc.NumberNode({integer:!0})),max_inclusive:Xc.Opt(Xc.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Xc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Yc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=t.Mod(t.ChoiceNode([{type:"number",node:t.NumberNode(),change:()=>0},{type:"string",priority:1,node:r({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:o("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const a=t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=t.NumberNode({min:-1e6,max:1e6}),c=t.NumberNode({integer:!0,min:-4064,max:4062});i.register("density_function",t.Mod(t.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:abs":{argument:e.DensityFunction},"minecraft:add":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:blend_density":{argument:e.DensityFunction},"minecraft:cache_2d":{argument:e.DensityFunction},"minecraft:cache_all_in_cell":{argument:e.DensityFunction},"minecraft:cache_once":{argument:e.DensityFunction},"minecraft:clamp":{input:e.DensityFunction,min:s,max:s},"minecraft:constant":{argument:t.NumberNode()},"minecraft:cube":{argument:e.DensityFunction},"minecraft:flat_cache":{argument:e.DensityFunction},"minecraft:half_negative":{argument:e.DensityFunction},"minecraft:interpolated":{argument:e.DensityFunction},"minecraft:max":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:min":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:mul":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode()},"minecraft:quarter_negative":{argument:e.DensityFunction},"minecraft:range_choice":{input:e.DensityFunction,min_inclusive:s,max_exclusive:s,when_in_range:e.DensityFunction,when_out_of_range:e.DensityFunction},"minecraft:shift":{argument:e.DensityFunction},"minecraft:shift_a":{argument:e.DensityFunction},"minecraft:shift_b":{argument:e.DensityFunction},"minecraft:shifted_noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument:e.DensityFunction},"minecraft:terrain_shaper_spline":{spline:r({enum:["offset","factor","jaggedness"]}),min_value:s,max_value:s,continentalness:e.DensityFunction,erosion:e.DensityFunction,weirdness:e.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:r({enum:["type_1","type_2"]}),noise:a,input:e.DensityFunction},"minecraft:y_clamped_gradient":{from_y:c,to_y:c,from_value:s,to_value:s}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})}))}}(Yc);var Zc={},Qc={};Object.defineProperty(Qc,"__esModule",{value:!0}),Qc.initProcessorListSchemas=Qc.Processors=void 0;const el=Pe;Qc.initProcessorListSchemas=function(e,t){const i=el.Reference.bind(void 0,e),n=el.StringNode.bind(void 0,t);Qc.Processors=el.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",el.Mod(el.ObjectNode({processors:el.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",el.Mod(el.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[el.Switch]:[{push:"processor_type"}],[el.Case]:{"minecraft:block_age":{mossiness:el.NumberNode()},"minecraft:block_ignore":{blocks:el.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:el.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:el.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:el.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",el.Mod(el.ObjectNode({position_predicate:el.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:el.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:el.Opt(el.NumberNode({min:0,max:255,integer:!0})),max_dist:el.Opt(el.NumberNode({min:0,max:255,integer:!0})),min_chance:el.Opt(el.NumberNode({min:0,max:1})),max_chance:el.Opt(el.NumberNode({min:0,max:1}))};e.register("pos_rule_test",el.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[el.Switch]:[{push:"predicate_type"}],[el.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",el.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[el.Switch]:[{push:"predicate_type"}],[el.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:el.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:el.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Zc,"__esModule",{value:!0}),Zc.initFeatureSchemas=void 0;const tl=Pe,il=fc,nl=Qc;Zc.initFeatureSchemas=function(e,t){const i=tl.Reference.bind(void 0,e),n=tl.StringNode.bind(void 0,t),r=tl.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=tl.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:tl.Opt(tl.NumberNode({integer:!0,min:1})),xz_spread:tl.Opt(tl.NumberNode({integer:!0,min:0})),y_spread:tl.Opt(tl.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:il.IntProvider({min:0,max:8}),half_height:tl.NumberNode({integer:!0,min:0,max:4}),targets:tl.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:tl.Opt(tl.NumberNode({integer:!0}))},d=tl.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:tl.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:tl.NumberNode({min:0,max:1}),targets:tl.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:il.IntProvider({min:1,max:128}),vertical_range:tl.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:tl.NumberNode({min:0,max:1}),extra_edge_column_chance:tl.NumberNode({min:0,max:1}),vegetation_chance:tl.NumberNode({min:0,max:1}),xz_radius:il.IntProvider(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",tl.Mod(tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:tl.ObjectNode({[tl.Switch]:["pop",{push:"type"}],[tl.Case]:{"minecraft:bamboo":{probability:tl.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:il.IntProvider({min:0,max:3}),height:il.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:tl.BooleanNode(),layers:tl.ListNode(tl.ObjectNode({height:il.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:il.IntProvider({min:0,max:16}),rim_size:il.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:tl.NumberNode({integer:!0,min:1,max:512}),height:il.IntProvider({min:0,max:128}),radius:il.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:tl.NumberNode({integer:!0,min:0,max:64}),height_deviation:tl.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:il.IntProvider({min:0,max:128}),density:il.FloatProvider({min:0,max:2}),wetness:il.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:tl.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:tl.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:tl.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:tl.BooleanNode(),exit:tl.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:tl.Opt(tl.BooleanNode()),crystal_beam_target:tl.Opt(i("block_pos")),spikes:tl.ListNode(tl.ObjectNode({centerX:tl.Opt(tl.NumberNode({integer:!0})),centerZ:tl.Opt(tl.NumberNode({integer:!0})),radius:tl.Opt(tl.NumberNode({integer:!0})),height:tl.Opt(tl.NumberNode({integer:!0})),guarded:tl.Opt(tl.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:tl.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:tl.NumberNode({integer:!0,min:0,max:7}),fossil_structures:tl.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:tl.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:nl.Processors,overlay_processors:nl.Processors},"minecraft:geode":{blocks:tl.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:tl.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:n({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:tl.ObjectNode({filling:tl.Opt(tl.NumberNode({min:.01,max:50})),inner_layer:tl.Opt(tl.NumberNode({min:.01,max:50})),middle_layer:tl.Opt(tl.NumberNode({min:.01,max:50})),outer_layer:tl.Opt(tl.NumberNode({min:.01,max:50}))}),crack:tl.ObjectNode({generate_crack_chance:tl.Opt(tl.NumberNode({min:0,max:1})),base_crack_size:tl.Opt(tl.NumberNode({min:0,max:5})),crack_point_offset:tl.Opt(tl.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:tl.Opt(tl.NumberNode({min:0,max:1})),use_potential_placements_chance:tl.Opt(tl.NumberNode({min:0,max:1})),use_alternate_layer0_chance:tl.Opt(tl.NumberNode({min:0,max:1})),placements_require_layer0_alternate:tl.Opt(tl.BooleanNode()),outer_wall_distance:tl.Opt(il.IntProvider({min:1,max:20})),distribution_points:tl.Opt(il.IntProvider({min:1,max:20})),point_offset:tl.Opt(il.IntProvider({min:0,max:10})),min_gen_offset:tl.Opt(tl.NumberNode({integer:!0})),max_gen_offset:tl.Opt(tl.NumberNode({integer:!0})),invalid_blocks_threshold:tl.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:tl.Opt(tl.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:tl.Opt(tl.NumberNode({min:0,max:1})),can_place_on_floor:tl.Opt(tl.BooleanNode()),can_place_on_ceiling:tl.Opt(tl.BooleanNode()),can_place_on_wall:tl.Opt(tl.BooleanNode()),can_be_placed_on:il.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:tl.Opt(tl.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:tl.Opt(tl.NumberNode({integer:!0,min:1,max:512})),column_radius:il.IntProvider({min:0,max:60}),height_scale:il.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:tl.NumberNode({min:0,max:1}),stalactite_bluntness:il.FloatProvider({min:.1,max:10}),stalagmite_bluntness:il.FloatProvider({min:.1,max:10}),wind_speed:il.FloatProvider({min:0,max:2}),min_radius_for_wind:tl.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:tl.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:tl.NumberNode({integer:!0,min:1}),spread_height:tl.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:il.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_directional_spread:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_spread_radius2:tl.Opt(tl.NumberNode({min:0,max:1})),chance_of_spread_radius3:tl.Opt(tl.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:tl.ListNode(tl.ObjectNode({chance:tl.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:tl.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:tl.NumberNode({integer:!0,min:1,max:64}),root_radius:tl.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:tl.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:tl.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:tl.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:tl.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:tl.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:tl.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:il.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:tl.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:il.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:tl.NumberNode({integer:!0}),hole_count:tl.NumberNode({integer:!0}),requires_block_below:tl.BooleanNode(),valid_blocks:il.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:tl.Opt(tl.BooleanNode()),force_dirt:tl.Opt(tl.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:tl.NumberNode({integer:!0,min:0,max:32}),height_rand_a:tl.NumberNode({integer:!0,min:0,max:24}),height_rand_b:tl.NumberNode({integer:!0,min:0,max:24}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:bending_trunk_placer":{bend_length:il.IntProvider({min:1,max:64}),min_height_for_leaves:tl.Opt(tl.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:il.IntProvider({min:0,max:16}),offset:il.IntProvider({min:0,max:16}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:blob_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:tl.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:il.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:il.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:il.IntProvider({min:1,max:512}),leaf_placement_attempts:tl.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:il.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:tl.ListNode(tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:tl.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:tl.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:tl.NumberNode({integer:!0,min:1}),spread_height:tl.NumberNode({integer:!0,min:1}),max_height:tl.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:tl.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:tl.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:tl.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",tl.Mod(tl.ObjectNode({feature:r,placement:tl.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",tl.Mod(tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:tl.Opt(tl.NumberNode({min:0,max:80})),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:two_layers_feature_size":{limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:81})),lower_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),upper_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:80})),upper_limit:tl.Opt(tl.NumberNode({integer:!0,min:0,max:80})),lower_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),middle_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16})),upper_size:tl.Opt(tl.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:tl.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:tl.Mod(tl.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",tl.Mod(tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:il.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:tl.Mod(tl.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:tl.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:tl.NumberNode({min:-1,max:1}),high_chance:tl.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:tl.ListNode(i("block_state")),high_states:tl.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:tl.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:il.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:tl.ListNode(tl.Mod(tl.ObjectNode({weight:tl.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:tl.Opt(tl.ListNode(tl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",tl.Mod(tl.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:all_of":{predicates:tl.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:tl.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:il.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:il.Tag({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var rl={};Object.defineProperty(rl,"__esModule",{value:!0}),rl.initNoiseSettingsSchemas=void 0;const ol=Pe,al=fc,sl=Yc;rl.initNoiseSettingsSchemas=function(e,t){const i=ol.Reference.bind(void 0,e),n=ol.StringNode.bind(void 0,t);e.register("noise_settings",ol.Mod(ol.ObjectNode({sea_level:ol.NumberNode({integer:!0}),disable_mob_generation:ol.BooleanNode(),aquifers_enabled:ol.BooleanNode(),ore_veins_enabled:ol.BooleanNode(),legacy_random_source:ol.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:ol.ObjectNode({min_y:ol.NumberNode({integer:!0,min:-2048,max:2047}),height:ol.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ol.NumberNode({integer:!0}),size_vertical:ol.NumberNode({integer:!0}),sampling:ol.ObjectNode({xz_scale:ol.NumberNode(),y_scale:ol.NumberNode(),xz_factor:ol.NumberNode(),y_factor:ol.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),noise_router:ol.ObjectNode({barrier:sl.DensityFunction,fluid_level_floodedness:sl.DensityFunction,fluid_level_spread:sl.DensityFunction,lava:sl.DensityFunction,temperature:sl.DensityFunction,vegetation:sl.DensityFunction,continents:sl.DensityFunction,erosion:sl.DensityFunction,depth:sl.DensityFunction,ridges:sl.DensityFunction,initial_density_without_jaggedness:sl.DensityFunction,final_density:sl.DensityFunction,vein_toggle:sl.DensityFunction,vein_ridged:sl.DensityFunction,vein_gap:sl.DensityFunction}),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>al.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",ol.ObjectNode({target:ol.NumberNode(),size:ol.NumberNode({integer:!0,min:0}),offset:ol.NumberNode({integer:!0})})),e.register("generator_layer",ol.Mod(ol.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ol.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ol.Mod(ol.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ol.Mod(ol.ChoiceNode([{type:"number",node:ol.NumberNode()},{type:"object",node:ol.ObjectNode({coordinate:ol.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ol.ListNode(ol.ObjectNode({location:ol.NumberNode(),derivative:ol.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var cl={};Object.defineProperty(cl,"__esModule",{value:!0}),cl.initStructureFeatureSchemas=void 0;const ll=Pe,ul=fc,dl=Hc;cl.initStructureFeatureSchemas=function(e,t){const i=ll.StringNode.bind(void 0,t),n=ll.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ll.NumberNode({integer:!0})};e.register("configured_structure_feature",ll.Mod(ll.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:ul.Tag({resource:"$worldgen/biome"}),adapt_noise:ll.Opt(ll.BooleanNode()),spawn_overrides:ll.MapNode(i({enum:"mob_category"}),ll.ObjectNode({bounding_box:i({enum:["piece","full"]}),spawns:dl.MobCategorySpawnSettings})),config:ll.ObjectNode({[ll.Switch]:["pop",{push:"type"}],[ll.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:ll.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:ll.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:ll.NumberNode({min:0,max:1}),cluster_probability:ll.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ll.Opt(ll.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var hl={};Object.defineProperty(hl,"__esModule",{value:!0}),hl.initStructureSetSchemas=void 0;const pl=Pe,ml=fc;hl.initStructureSetSchemas=function(e,t){const i=pl.StringNode.bind(void 0,t),n=pl.Reference.bind(void 0,e);e.register("structure_set",pl.ObjectNode({structures:pl.ListNode(pl.ObjectNode({structure:ml.Tag({resource:"$worldgen/configured_structure_feature"}),weight:pl.NumberNode({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",pl.Mod(pl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[pl.Switch]:[{push:"type"}],[pl.Case]:{"minecraft:concentric_rings":{distance:pl.NumberNode({integer:!0,min:0,max:1023}),spread:pl.NumberNode({integer:!0,min:0,max:1023}),count:pl.NumberNode({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:pl.Opt(i({enum:["linear","triangular"]})),spacing:pl.NumberNode({integer:!0,min:0,max:4096}),separation:pl.Mod(pl.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:pl.NumberNode({integer:!0,min:0}),locate_offset:pl.Opt(pl.ListNode(pl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var fl={};Object.defineProperty(fl,"__esModule",{value:!0}),fl.initSurfaceRuleSchemas=void 0;const gl=Pe;fl.initSurfaceRuleSchemas=function(e,t){const i=gl.StringNode.bind(void 0,t),n=gl.Reference.bind(void 0,e);e.register("material_rule",gl.Mod(gl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[gl.Switch]:[{push:"type"}],[gl.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:gl.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",gl.Mod(gl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[gl.Switch]:[{push:"type"}],[gl.Case]:{"minecraft:biome":{biome_is:gl.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:gl.NumberNode(),max_threshold:gl.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:gl.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:gl.BooleanNode(),secondary_depth_range:gl.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:gl.NumberNode({integer:!0}),surface_depth_multiplier:gl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:gl.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:gl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:gl.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var _l={};Object.defineProperty(_l,"__esModule",{value:!0}),_l.initTemplatePoolSchemas=void 0;const bl=Pe,vl=Qc;_l.initTemplatePoolSchemas=function(e,t){const i=bl.Reference.bind(void 0,e),n=bl.StringNode.bind(void 0,t);e.register("template_pool",bl.Mod(bl.ObjectNode({name:n(),fallback:n(),elements:bl.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",bl.Mod(bl.ObjectNode({weight:bl.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",bl.Mod(bl.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[bl.Switch]:[{push:"element_type"}],[bl.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:vl.Processors},"minecraft:list_pool_element":{elements:bl.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:vl.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initWorldgenSchemas=void 0;const yl=Hc,wl=qc,xl=Kc,Nl=Yc,kl=Zc,Al=rl,Cl=Qc,Ol=cl,Sl=hl,El=fl,Fl=_l;Wc.initWorldgenSchemas=function(e,t){Cl.initProcessorListSchemas(e,t),Nl.initDensityFunctionSchemas(e,t),yl.initBiomeSchemas(e,t),wl.initCarverSchemas(e,t),xl.initDecoratorSchemas(e,t),kl.initFeatureSchemas(e,t),Al.initNoiseSettingsSchemas(e,t),Ol.initStructureFeatureSchemas(e,t),Sl.initStructureSetSchemas(e,t),El.initSurfaceRuleSchemas(e,t),Fl.initTemplatePoolSchemas(e,t)};var Dl={};Object.defineProperty(Dl,"__esModule",{value:!0}),Dl.initWorldSettingsSchemas=void 0;const Bl=Pe;Dl.initWorldSettingsSchemas=function(e,t){const i=Bl.Reference.bind(void 0,e),n=Bl.StringNode.bind(void 0,t);e.register("world_settings",Bl.Mod(Bl.ObjectNode({generate_features:Bl.BooleanNode(),bonus_chest:Bl.BooleanNode(),seed:Bl.NumberNode({integer:!0}),dimensions:Bl.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(oc,"__esModule",{value:!0}),oc.initSchemas=void 0;const Ll=ac,Ml=cc,Tl=fc,Rl=gc,$l=vc,jl=xc,Il=Ac,Pl=Sc,zl=Lc,Ul=Tc,Wl=$c,Hl=Ic,ql=zc,Vl=Wc,Gl=Dl;oc.initSchemas=function(e,t){Tl.initCommonSchemas(e,t),Ll.initAdvancementSchemas(e,t),Ml.initAssetsSchemas(e,t),Rl.initConditionSchemas(e,t),jl.initDimensionTypeSchemas(e,t),$l.initDimensionSchemas(e,t),Il.initItemModifierSchemas(e,t),Pl.initLootTableSchemas(e,t),zl.initPackMcmetaSchemas(e,t),Ul.initPredicatesSchemas(e,t),Wl.initRecipeSchemas(e,t),Hl.initTagsSchemas(e,t),ql.initTextComponentSchemas(e,t),Vl.initWorldgenSchemas(e,t),Gl.initWorldSettingsSchemas(e,t)};var Kl=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Xl=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Jl=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Kl(t,e,i);return Xl(t,e),t};Object.defineProperty(nc,"__esModule",{value:!0});var Yl=nc.getSchemas=nc.getCollections=void 0;const Zl=Pe,Ql=rc,eu=oc;var tu=nc.lootContext=Jl(Ec);var iu=nc.getCollections=function(){const e=new Zl.CollectionRegistry;return Ql.initCollections(e),e};Yl=nc.getSchemas=function(e){const t=new Zl.SchemaRegistry;return eu.initSchemas(t,e),t};var nu=Object.freeze(Object.assign(Object.create(null),nc,{[Symbol.toStringTag]:"Module",get getSchemas(){return Yl},get getCollections(){return iu},lootContext:tu,default:nc})),ru={},ou={};Object.defineProperty(ou,"__esModule",{value:!0}),ou.initCollections=void 0,ou.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),e.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])};var au={},su={};Object.defineProperty(su,"__esModule",{value:!0}),su.initAdvancementSchemas=void 0;const cu=Pe;su.initAdvancementSchemas=function(e,t){const i=cu.Reference.bind(void 0,e),n=cu.StringNode.bind(void 0,t),r=cu.ChoiceNode([{type:"object",node:cu.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:cu.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",cu.Mod(cu.ObjectNode({display:cu.Opt(cu.Mod(cu.ObjectNode({icon:cu.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:cu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:cu.Opt(n()),frame:cu.Opt(n({enum:["task","challenge","goal"]})),show_toast:cu.Opt(cu.BooleanNode()),announce_to_chat:cu.Opt(cu.BooleanNode()),hidden:cu.Opt(cu.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:cu.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:cu.MapNode(n(),i("advancement_criteria")),requirements:cu.Opt(cu.ListNode(cu.ListNode(n()))),rewards:cu.Opt(cu.ObjectNode({function:cu.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:cu.Opt(cu.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:cu.Opt(cu.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:cu.Opt(cu.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",cu.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:cu.Opt(cu.ObjectNode({player:cu.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[cu.Switch]:["pop",{push:"trigger"}],[cu.Case]:{"minecraft:bee_nest_destroyed":{block:cu.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:cu.Opt(cu.NumberNode({integer:!0})),item:cu.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:cu.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:cu.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:cu.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:cu.Opt(cu.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:cu.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:cu.Opt(cu.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),cu.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:cu.Opt(r)},"minecraft:enter_block":{block:cu.Opt(n({validator:"resource",params:{pool:"block"}})),state:cu.Opt(cu.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:cu.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:cu.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:cu.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:cu.Opt(i("location_predicate")),distance:cu.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:cu.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:cu.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:cu.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:cu.Opt(cu.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:cu.Opt(cu.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:cu.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:cu.Opt(i("item_predicate")),location:cu.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:cu.Opt(cu.ListNode(r))},"minecraft:levitation":{distance:cu.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:cu.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:cu.Opt(i("location_predicate")),distance:cu.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:cu.Opt(n({validator:"resource",params:{pool:"block"}})),state:cu.Opt(cu.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:cu.Opt(i("item_predicate")),location:cu.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:cu.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:cu.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:cu.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:cu.Opt(i("location_predicate")),distance:cu.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:cu.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:cu.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:cu.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:cu.Opt(i("entity_predicate")),item:cu.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:cu.Opt(i("float_bounds"))},"minecraft:used_totem":{item:cu.Opt(i("item_predicate"))},"minecraft:using_item":{item:cu.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:cu.Opt(i("entity_predicate")),item:cu.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:cu.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var lu={},uu={};Object.defineProperty(uu,"__esModule",{value:!0}),uu.initModelSchemas=void 0;const du=Pe;uu.initModelSchemas=function(e,t){du.Reference.bind(void 0,e);const i=du.StringNode.bind(void 0,t),n=(e,t,i)=>du.ListNode(du.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=du.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",du.Mod(du.ObjectNode({parent:du.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:du.Opt(du.BooleanNode()),gui_light:du.Opt(i({enum:"gui_light"})),textures:du.Opt(du.MapNode(i(),r)),elements:du.Opt(du.ListNode(du.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:du.Opt(du.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:du.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:du.Opt(du.BooleanNode())})),shade:du.Opt(du.BooleanNode()),faces:du.MapNode(i({enum:"direction"}),du.ObjectNode({texture:r,uv:du.Opt(n(4)),cullface:du.Opt(i({enum:"direction"})),rotation:du.Opt(du.NumberNode({integer:!0})),tintindex:du.Opt(du.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:du.Opt(du.MapNode(i({enum:"display_position"}),du.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:du.Opt(du.ListNode(du.ObjectNode({predicate:du.MapNode(i({enum:"item_model_predicates"}),du.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var hu={};Object.defineProperty(hu,"__esModule",{value:!0}),hu.initBlockDefinitionSchemas=void 0;const pu=Pe;hu.initBlockDefinitionSchemas=function(e,t){const i=pu.Reference.bind(void 0,e),n=pu.StringNode.bind(void 0,t);e.register("block_definition",pu.Mod(pu.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:pu.ObjectNode({variants:pu.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:pu.ObjectNode({multipart:pu.ListNode(pu.ObjectNode({when:pu.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:pu.Opt(pu.NumberEnum({integer:!0,values:[0,90,180,270]})),y:pu.Opt(pu.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:pu.Opt(pu.BooleanNode())};e.register("model_variant",pu.ChoiceNode([{type:"object",node:pu.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:pu.ListNode(pu.ObjectNode(c(s({},r),{weight:pu.Opt(pu.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",pu.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:pu.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:pu.ObjectNode({OR:pu.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(lu,"__esModule",{value:!0}),lu.initAssetsSchemas=void 0;const mu=uu,fu=hu;lu.initAssetsSchemas=function(e,t){fu.initBlockDefinitionSchemas(e,t),mu.initModelSchemas(e,t)};var gu={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Pe;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):r({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:r({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}}(gu);var _u={};Object.defineProperty(_u,"__esModule",{value:!0}),_u.initConditionSchemas=void 0;const bu=Pe,vu=gu;_u.initConditionSchemas=function(e,t){const i=bu.Reference.bind(void 0,e),n=bu.StringNode.bind(void 0,t);e.register("predicate",bu.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",bu.Mod(bu.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[bu.Switch]:[{push:"condition"}],[bu.Case]:vu.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var yu={};Object.defineProperty(yu,"__esModule",{value:!0}),yu.initDimensionSchemas=void 0;const wu=Pe,xu=gu;yu.initDimensionSchemas=function(e,t){const i=wu.Reference.bind(void 0,e),n=wu.StringNode.bind(void 0,t);e.register("dimension",wu.Mod(wu.ObjectNode({type:xu.DimensionTypePresets(i("dimension_type")),generator:wu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[wu.Switch]:[{push:"type"}],[wu.Case]:{"minecraft:noise":{seed:wu.NumberNode({integer:!0}),settings:xu.NoiseSettingsPresets(i("noise_settings")),biome_source:wu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[wu.Switch]:[{push:"type"}],[wu.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:wu.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:wu.Mod(wu.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:wu.Opt(wu.NumberNode({integer:!0,min:0,max:62})),biomes:xu.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:wu.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:i("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("flat_generator_settings",wu.ObjectNode({biome:wu.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:wu.Opt(wu.BooleanNode()),features:wu.Opt(wu.BooleanNode()),layers:wu.ListNode(i("generator_layer")),structure_overrides:xu.Tag({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const r=wu.ChoiceNode([{type:"number",node:wu.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:wu.ListNode(wu.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("parameter_point",wu.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:wu.NumberNode({min:0,max:1})})),e.register("generator_biome",wu.Mod(wu.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:i("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))};var Nu={};Object.defineProperty(Nu,"__esModule",{value:!0}),Nu.initDimensionTypeSchemas=void 0;const ku=Pe,Au=gu;Nu.initDimensionTypeSchemas=function(e,t){const i=ku.StringNode.bind(void 0,t);e.register("dimension_type",ku.Mod(ku.ObjectNode({ultrawarm:ku.BooleanNode(),natural:ku.BooleanNode(),piglin_safe:ku.BooleanNode(),respawn_anchor_works:ku.BooleanNode(),bed_works:ku.BooleanNode(),has_raids:ku.BooleanNode(),has_skylight:ku.BooleanNode(),has_ceiling:ku.BooleanNode(),coordinate_scale:ku.NumberNode({min:1e-5,max:3e7}),ambient_light:ku.NumberNode(),fixed_time:ku.Opt(ku.NumberNode({integer:!0})),logical_height:ku.NumberNode({integer:!0,min:0,max:4064}),effects:ku.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:ku.NumberNode({integer:!0,min:-2032,max:2031}),height:ku.NumberNode({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>Au.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2032&&n.add(t.push("height"),"error.min_y_plus_height",2032),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Cu={};Object.defineProperty(Cu,"__esModule",{value:!0}),Cu.initItemModifierSchemas=void 0;const Ou=Pe,Su=gu;Cu.initItemModifierSchemas=function(e,t){const i=Ou.Reference.bind(void 0,e),n=Ou.StringNode.bind(void 0,t);e.register("item_modifier",Ou.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Ou.Opt(Ou.ListNode(i("condition")))};e.register("function",Ou.Mod(Ou.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Ou.Switch]:[{push:"function"}],[Ou.Case]:Su.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Eu={},Fu={};Object.defineProperty(Fu,"__esModule",{value:!0}),Fu.LootFunctions=Fu.LootConditions=Fu.LootCopySources=Fu.LootEntitySources=Fu.LootTableTypes=void 0,Fu.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Fu.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Fu.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Fu.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Fu.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Eu,"__esModule",{value:!0}),Eu.initLootTableSchemas=void 0;const Du=Pe,Bu=Fu,Lu=gu;Eu.initLootTableSchemas=function(e,t){const i=Du.Reference.bind(void 0,e),n=Du.StringNode.bind(void 0,t),r={conditions:Du.Opt(Du.ListNode(i("loot_condition")))},o=s({functions:Du.Opt(Du.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Bu.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Du.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Du.SwitchNode(r)}const c=a(Bu.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Bu.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Bu.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Bu.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Du.Mod(Du.ObjectNode({type:Du.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Du.Opt(Du.ListNode(Du.Mod(Du.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:Du.Opt(i("number_provider")),entries:Du.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Du.Opt(Du.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Du.Mod(Du.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Du.Opt(Du.Mod(Du.NumberNode({integer:!0,min:1}),h)),quality:Du.Opt(Du.Mod(Du.NumberNode({integer:!0}),h)),[Du.Switch]:[{push:"type"}],[Du.Case]:{"minecraft:alternatives":s({children:Du.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Du.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Du.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Du.Opt(Du.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Du.Mod(Du.ObjectNode({function:l,[Du.Switch]:[{push:"function"}],[Du.Case]:Lu.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Du.Mod(Du.ObjectNode({condition:c,[Du.Switch]:[{push:"condition"}],[Du.Case]:Lu.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Du.Mod(Du.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Du.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Mu={};Object.defineProperty(Mu,"__esModule",{value:!0}),Mu.initPackMcmetaSchemas=void 0;const Tu=Pe;Mu.initPackMcmetaSchemas=function(e,t){const i=Tu.Reference.bind(void 0,e),n=Tu.StringNode.bind(void 0,t);e.register("pack_mcmeta",Tu.Mod(Tu.ObjectNode({pack:Tu.Mod(Tu.ObjectNode({pack_format:Tu.Mod(Tu.NumberNode({integer:!0,min:10,max:10}),{default:()=>10,canUpdate:(e,t)=>10!==t,update:()=>[{name:"pack_format",params:[10],newValue:10}]}),description:i("text_component")}),{default:()=>({pack_format:10,description:""})}),filter:Tu.ObjectNode({block:Tu.ListNode(Tu.ObjectNode({namespace:n({validator:"regex_pattern"}),path:n({validator:"regex_pattern"})}))})}),{default:()=>({pack:{pack_format:10,description:""}})}))};var Ru={};Object.defineProperty(Ru,"__esModule",{value:!0}),Ru.initPredicatesSchemas=void 0;const $u=Pe;Ru.initPredicatesSchemas=function(e,t){const i=$u.Reference.bind(void 0,e),n=$u.StringNode.bind(void 0,t),r=$u.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:$u.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:$u.ObjectNode({min:$u.Opt($u.NumberNode({integer:!0})),max:$u.Opt($u.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:$u.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",$u.ObjectNode({items:$u.Opt($u.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:$u.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:$u.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:$u.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:$u.Opt($u.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",$u.ObjectNode({enchantment:$u.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",$u.ObjectNode({blocks:$u.Opt($u.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:$u.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:$u.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:$u.Opt($u.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",$u.ObjectNode({fluid:$u.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:$u.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:$u.Opt($u.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",$u.ObjectNode({position:$u.Opt($u.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:$u.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:$u.Opt(n({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:$u.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:$u.Opt($u.ObjectNode({light:i("int_bounds")})),smokey:$u.Opt($u.BooleanNode()),block:$u.Opt(i("block_predicate")),fluid:$u.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",$u.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[$u.Switch]:[{push:"type"}],[$u.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",$u.ObjectNode({gamemode:$u.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:$u.Opt($u.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),$u.ChoiceNode([{type:"boolean",node:$u.BooleanNode(),change:e=>!0},{type:"object",node:$u.MapNode(n(),$u.BooleanNode())}]))),recipes:$u.Opt($u.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),$u.BooleanNode())),stats:$u.Opt($u.ListNode(i("statistic_predicate"))),looking_at:$u.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",$u.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:$u.Opt($u.BooleanNode()),visible:$u.Opt($u.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",$u.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",$u.ObjectNode({type:$u.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:$u.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:$u.Opt(n({validator:"team"})),location:$u.Opt(i("location_predicate")),stepping_on:$u.Opt(i("location_predicate")),distance:$u.Opt(i("distance_predicate")),flags:$u.Opt($u.ObjectNode({is_on_fire:$u.Opt($u.BooleanNode()),is_sneaking:$u.Opt($u.BooleanNode()),is_sprinting:$u.Opt($u.BooleanNode()),is_swimming:$u.Opt($u.BooleanNode()),is_baby:$u.Opt($u.BooleanNode())})),equipment:$u.Opt($u.MapNode(n({enum:"slot"}),i("item_predicate"))),player:$u.Opt(i("player_predicate")),vehicle:$u.Opt(i("entity_predicate")),passenger:$u.Opt(i("entity_predicate")),targeted_entity:$u.Opt(i("entity_predicate")),lightning_bolt:$u.Opt($u.ObjectNode({blocks_set_on_fire:$u.Opt(i("int_bounds")),entity_struck:$u.Opt(i("entity_predicate"))})),fishing_hook:$u.Opt($u.ObjectNode({in_open_water:$u.Opt($u.BooleanNode())})),effects:$u.Opt($u.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",$u.ObjectNode({is_explosion:$u.Opt($u.BooleanNode()),is_fire:$u.Opt($u.BooleanNode()),is_magic:$u.Opt($u.BooleanNode()),is_projectile:$u.Opt($u.BooleanNode()),is_lightning:$u.Opt($u.BooleanNode()),bypasses_armor:$u.Opt($u.BooleanNode()),bypasses_invulnerability:$u.Opt($u.BooleanNode()),bypasses_magic:$u.Opt($u.BooleanNode()),source_entity:$u.Opt(i("entity_predicate")),direct_entity:$u.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",$u.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:$u.Opt($u.BooleanNode()),source_entity:$u.Opt(i("entity_predicate")),type:$u.Opt(i("damage_source_predicate"))},{context:"damage"}))};var ju={};Object.defineProperty(ju,"__esModule",{value:!0}),ju.initRecipeSchemas=void 0;const Iu=Pe;ju.initRecipeSchemas=function(e,t){const i=Iu.Reference.bind(void 0,e),n=Iu.StringNode.bind(void 0,t);e.register("recipe",Iu.Mod(Iu.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Iu.Switch]:[{push:"type"}],[Iu.Case]:{"minecraft:crafting_shaped":{group:Iu.Opt(n({enum:"recipe_group",additional:!0})),pattern:Iu.ListNode(n()),key:Iu.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Iu.Opt(n()),ingredients:Iu.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Iu.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Iu.Opt(Iu.NumberNode()),cookingtime:Iu.Opt(Iu.Mod(Iu.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Iu.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Iu.Opt(Iu.NumberNode()),cookingtime:Iu.Opt(Iu.Mod(Iu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Iu.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Iu.Opt(Iu.NumberNode()),cookingtime:Iu.Opt(Iu.Mod(Iu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Iu.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Iu.Opt(Iu.NumberNode()),cookingtime:Iu.Opt(Iu.Mod(Iu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Iu.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Iu.NumberNode({integer:!0})},"minecraft:smithing":{group:Iu.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Iu.Mod(Iu.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Iu.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Iu.Mod(Iu.ObjectNode({item:Iu.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Iu.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Iu.Mod(Iu.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Iu.Opt(Iu.Mod(Iu.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Pu={};Object.defineProperty(Pu,"__esModule",{value:!0}),Pu.initTagsSchemas=void 0;const zu=Pe;Pu.initTagsSchemas=function(e,t){const i=zu.StringNode.bind(void 0,t),n=e=>zu.Mod(zu.ObjectNode({replace:zu.Opt(zu.BooleanNode()),values:zu.ListNode(zu.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:zu.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:zu.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item")),e.register("advancement_tag",n("$advancement")),e.register("dimension_tag",n("$dimension")),e.register("dimension_type_tag",n("$dimension_type")),e.register("function_tag",n("$function")),e.register("item_modifier_tag",n("$item_modifier")),e.register("loot_table_tag",n("$loot_table")),e.register("predicate_tag",n("$predicate")),e.register("recipe_tag",n("$recipe")),e.register("structure_tag",n("$structure")),e.register("biome_tag",n("$worldgen/biome")),e.register("configured_carver_tag",n("$worldgen/configured_carver")),e.register("configured_feature_tag",n("$worldgen/configured_feature")),e.register("structure_tag",n("$worldgen/structure")),e.register("configured_surface_builder_tag",n("$worldgen/configured_surface_builder")),e.register("density_function_tag",n("$worldgen/density_function")),e.register("flat_level_generator_preset_tag",n("$worldgen/flat_level_generator_preset")),e.register("noise_tag",n("$worldgen/noise")),e.register("noise_settings_tag",n("$worldgen/noise_settings")),e.register("placed_feature_tag",n("$worldgen/placed_feature")),e.register("processor_list_tag",n("$worldgen/processor_list")),e.register("structure_set_tag",n("$worldgen/structure_set")),e.register("template_pool_tag",n("$worldgen/template_pool")),e.register("world_preset_tag",n("$worldgen/world_preset"))};var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0}),Uu.initTextComponentSchemas=void 0;const Wu=Pe;Uu.initTextComponentSchemas=function(e,t){const i=Wu.Reference.bind(void 0,e),n=Wu.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Wu.Mod(Wu.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Wu.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Wu.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Wu.Opt(n()),font:Wu.Opt(n()),bold:Wu.Opt(Wu.BooleanNode()),italic:Wu.Opt(Wu.BooleanNode()),underlined:Wu.Opt(Wu.BooleanNode()),strikethrough:Wu.Opt(Wu.BooleanNode()),obfuscated:Wu.Opt(Wu.BooleanNode()),insertion:Wu.Opt(n()),clickEvent:Wu.Opt(Wu.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Wu.Switch]:[{push:"action"}],[Wu.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Wu.Opt(Wu.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Wu.Switch]:[{push:"action"}],[Wu.Case]:{show_text:{value:Wu.Opt(i("text_component")),contents:Wu.Opt(i("text_component"))},show_item:{value:Wu.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Wu.Opt(Wu.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Wu.Opt(Wu.NumberNode({integer:!0})),tag:Wu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Wu.Opt(Wu.ObjectNode({name:Wu.Opt(n()),type:Wu.Opt(n()),id:Wu.Opt(n())})),contents:Wu.Opt(Wu.Mod(Wu.ObjectNode({name:Wu.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Wu.Opt(i("text_component_list"))};e.register("text_component_object",Wu.Mod(Wu.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Wu.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Wu.ObjectNode(s({translate:n(),with:Wu.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Wu.ObjectNode(s({score:Wu.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Wu.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Wu.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Wu.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Wu.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Wu.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Wu.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Wu.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Wu.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Wu.Opt(Wu.BooleanNode()),separator:Wu.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Wu.Mod(Wu.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var Hu={},qu={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.MobCategorySpawnSettings=void 0;const t=Pe,i=gu;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.MobCategorySpawnSettings=t.Mod(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:t.NumberNode({integer:!0}),minCount:t.NumberNode({integer:!0}),maxCount:t.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),n.register("biome",t.Mod(t.ObjectNode({temperature:t.NumberNode(),downfall:t.NumberNode(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:t.Opt(o({enum:["none","frozen"]})),creature_spawn_probability:t.Opt(t.NumberNode({min:0,max:1})),effects:t.ObjectNode({sky_color:t.NumberNode({color:!0}),fog_color:t.NumberNode({color:!0}),water_color:t.NumberNode({color:!0}),water_fog_color:t.NumberNode({color:!0}),grass_color:t.Opt(t.NumberNode({color:!0})),foliage_color:t.Opt(t.NumberNode({color:!0})),grass_color_modifier:t.Opt(o({enum:["none","dark_forest","swamp"]})),ambient_sound:t.Opt(o()),mood_sound:t.Opt(t.ObjectNode({sound:o(),tick_delay:t.NumberNode({integer:!0}),block_search_extent:t.NumberNode({integer:!0}),offset:t.NumberNode()})),additions_sound:t.Opt(t.ObjectNode({sound:o(),tick_chance:t.NumberNode({min:0,max:1})})),music:t.Opt(t.ObjectNode({sound:o(),min_delay:t.NumberNode({integer:!0,min:0}),max_delay:t.NumberNode({integer:!0,min:0}),replace_current_music:t.BooleanNode()})),particle:t.Opt(t.ObjectNode({options:t.ObjectNode({type:o()}),probability:t.NumberNode({min:0,max:1})}))}),spawners:t.MapNode(o({enum:"mob_category"}),e.MobCategorySpawnSettings),spawn_costs:t.MapNode(o({validator:"resource",params:{pool:"entity_type"}}),t.Mod(t.ObjectNode({energy_budget:t.NumberNode(),charge:t.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:t.MapNode(o({enum:["air","liquid"]}),t.Mod(i.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:t.ListNode(t.Mod(i.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}}(qu);var Vu={};Object.defineProperty(Vu,"__esModule",{value:!0}),Vu.initCarverSchemas=void 0;const Gu=Pe,Ku=gu;Vu.initCarverSchemas=function(e,t){const i=Gu.Reference.bind(void 0,e),n=Gu.StringNode.bind(void 0,t),r={vertical_rotation:Ku.FloatProvider(),shape:Gu.ObjectNode({distance_factor:Ku.FloatProvider(),thickness:Ku.FloatProvider(),width_smoothness:Gu.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ku.FloatProvider(),vertical_radius_default_factor:Gu.NumberNode(),vertical_radius_center_factor:Gu.NumberNode()})},o={horizontal_radius_multiplier:Ku.FloatProvider(),vertical_radius_multiplier:Ku.FloatProvider(),floor_level:Ku.FloatProvider({min:-1,max:1})};e.register("configured_carver",Gu.Mod(Gu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Gu.ObjectNode({probability:Gu.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Ku.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:Gu.Opt(Gu.ObjectNode({debug_mode:Gu.Opt(Gu.BooleanNode()),air_state:Gu.Opt(i("block_state")),water_state:Gu.Opt(i("block_state")),lava_state:Gu.Opt(i("block_state")),barrier_state:Gu.Opt(i("block_state"))})),[Gu.Switch]:["pop",{push:"type"}],[Gu.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Xu={};Object.defineProperty(Xu,"__esModule",{value:!0}),Xu.initDecoratorSchemas=void 0;const Ju=Pe,Yu=gu;Xu.initDecoratorSchemas=function(e,t){const i=Ju.Reference.bind(void 0,e),n=Ju.StringNode.bind(void 0,t);e.register("decorator",Ju.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Ju.Switch]:[{push:"type"}],[Ju.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Ju.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Yu.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Yu.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Ju.NumberNode(),below_noise:Ju.NumberNode({integer:!0}),above_noise:Ju.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Ju.NumberNode({integer:!0}),noise_factor:Ju.NumberNode(),noise_offset:Ju.Opt(Ju.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Ju.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Ju.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:Yu.IntProvider({min:-16,max:16}),y_spread:Yu.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Ju.Opt(Ju.NumberNode({integer:!0})),max_inclusive:Ju.Opt(Ju.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Ju.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Zu={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Pe;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=t.Mod(t.ChoiceNode([{type:"number",node:t.NumberNode(),change:()=>0},{type:"string",priority:1,node:r({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:o("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const a=t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=t.NumberNode({min:-1e6,max:1e6}),c=t.NumberNode({integer:!0,min:-4064,max:4062});i.register("density_function",t.Mod(t.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:abs":{argument:e.DensityFunction},"minecraft:add":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:blend_density":{argument:e.DensityFunction},"minecraft:cache_2d":{argument:e.DensityFunction},"minecraft:cache_all_in_cell":{argument:e.DensityFunction},"minecraft:cache_once":{argument:e.DensityFunction},"minecraft:clamp":{input:e.DensityFunction,min:s,max:s},"minecraft:constant":{argument:t.NumberNode()},"minecraft:cube":{argument:e.DensityFunction},"minecraft:flat_cache":{argument:e.DensityFunction},"minecraft:half_negative":{argument:e.DensityFunction},"minecraft:interpolated":{argument:e.DensityFunction},"minecraft:max":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:min":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:mul":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode()},"minecraft:quarter_negative":{argument:e.DensityFunction},"minecraft:range_choice":{input:e.DensityFunction,min_inclusive:s,max_exclusive:s,when_in_range:e.DensityFunction,when_out_of_range:e.DensityFunction},"minecraft:shift":{argument:e.DensityFunction},"minecraft:shift_a":{argument:e.DensityFunction},"minecraft:shift_b":{argument:e.DensityFunction},"minecraft:shifted_noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:spline":{spline:o("terrain_spline")},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument:e.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:r({enum:["type_1","type_2"]}),noise:a,input:e.DensityFunction},"minecraft:y_clamped_gradient":{from_y:c,to_y:c,from_value:s,to_value:s}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("terrain_spline",t.Mod(t.ChoiceNode([{type:"number",node:t.NumberNode()},{type:"object",node:t.ObjectNode({coordinate:e.DensityFunction,points:t.ListNode(t.ObjectNode({location:t.NumberNode(),derivative:t.NumberNode(),value:o("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}}(Zu);var Qu={},ed={};Object.defineProperty(ed,"__esModule",{value:!0}),ed.initProcessorListSchemas=ed.Processors=void 0;const td=Pe;ed.initProcessorListSchemas=function(e,t){const i=td.Reference.bind(void 0,e),n=td.StringNode.bind(void 0,t);ed.Processors=td.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",td.Mod(td.ObjectNode({processors:td.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",td.Mod(td.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[td.Switch]:[{push:"processor_type"}],[td.Case]:{"minecraft:block_age":{mossiness:td.NumberNode()},"minecraft:block_ignore":{blocks:td.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:td.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:td.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:td.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",td.Mod(td.ObjectNode({position_predicate:td.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:td.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:td.Opt(td.NumberNode({min:0,max:255,integer:!0})),max_dist:td.Opt(td.NumberNode({min:0,max:255,integer:!0})),min_chance:td.Opt(td.NumberNode({min:0,max:1})),max_chance:td.Opt(td.NumberNode({min:0,max:1}))};e.register("pos_rule_test",td.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[td.Switch]:[{push:"predicate_type"}],[td.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",td.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[td.Switch]:[{push:"predicate_type"}],[td.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:td.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:td.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Qu,"__esModule",{value:!0}),Qu.initFeatureSchemas=void 0;const id=Pe,nd=gu,rd=ed;Qu.initFeatureSchemas=function(e,t){const i=id.Reference.bind(void 0,e),n=id.StringNode.bind(void 0,t),r=id.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=id.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:id.Opt(id.NumberNode({integer:!0,min:1})),xz_spread:id.Opt(id.NumberNode({integer:!0,min:0})),y_spread:id.Opt(id.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:nd.IntProvider({min:0,max:8}),half_height:id.NumberNode({integer:!0,min:0,max:4}),targets:id.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:id.Opt(id.NumberNode({integer:!0}))},d=id.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:id.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:id.NumberNode({min:0,max:1}),targets:id.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:nd.IntProvider({min:1,max:128}),vertical_range:id.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:id.NumberNode({min:0,max:1}),extra_edge_column_chance:id.NumberNode({min:0,max:1}),vegetation_chance:id.NumberNode({min:0,max:1}),xz_radius:nd.IntProvider(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",id.Mod(id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:id.ObjectNode({[id.Switch]:["pop",{push:"type"}],[id.Case]:{"minecraft:bamboo":{probability:id.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:nd.IntProvider({min:0,max:3}),height:nd.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:id.BooleanNode(),layers:id.ListNode(id.ObjectNode({height:nd.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:nd.IntProvider({min:0,max:16}),rim_size:nd.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:id.NumberNode({integer:!0,min:1,max:512}),height:nd.IntProvider({min:0,max:128}),radius:nd.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:id.NumberNode({integer:!0,min:0,max:64}),height_deviation:id.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:nd.IntProvider({min:0,max:128}),density:nd.FloatProvider({min:0,max:2}),wetness:nd.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:id.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:id.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:id.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:id.BooleanNode(),exit:id.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:id.Opt(id.BooleanNode()),crystal_beam_target:id.Opt(i("block_pos")),spikes:id.ListNode(id.ObjectNode({centerX:id.Opt(id.NumberNode({integer:!0})),centerZ:id.Opt(id.NumberNode({integer:!0})),radius:id.Opt(id.NumberNode({integer:!0})),height:id.Opt(id.NumberNode({integer:!0})),guarded:id.Opt(id.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:id.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:id.NumberNode({integer:!0,min:0,max:7}),fossil_structures:id.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:id.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:rd.Processors,overlay_processors:rd.Processors},"minecraft:geode":{blocks:id.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:id.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:n({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:id.ObjectNode({filling:id.Opt(id.NumberNode({min:.01,max:50})),inner_layer:id.Opt(id.NumberNode({min:.01,max:50})),middle_layer:id.Opt(id.NumberNode({min:.01,max:50})),outer_layer:id.Opt(id.NumberNode({min:.01,max:50}))}),crack:id.ObjectNode({generate_crack_chance:id.Opt(id.NumberNode({min:0,max:1})),base_crack_size:id.Opt(id.NumberNode({min:0,max:5})),crack_point_offset:id.Opt(id.NumberNode({min:0,max:10}))}),noise_multiplier:id.Opt(id.NumberNode({min:0,max:1})),use_potential_placements_chance:id.Opt(id.NumberNode({min:0,max:1})),use_alternate_layer0_chance:id.Opt(id.NumberNode({min:0,max:1})),placements_require_layer0_alternate:id.Opt(id.BooleanNode()),outer_wall_distance:id.Opt(nd.IntProvider({min:1,max:20})),distribution_points:id.Opt(nd.IntProvider({min:1,max:20})),point_offset:id.Opt(nd.IntProvider({min:0,max:10})),min_gen_offset:id.Opt(id.NumberNode({integer:!0})),max_gen_offset:id.Opt(id.NumberNode({integer:!0})),invalid_blocks_threshold:id.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:id.Opt(id.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:id.Opt(id.NumberNode({min:0,max:1})),can_place_on_floor:id.Opt(id.BooleanNode()),can_place_on_ceiling:id.Opt(id.BooleanNode()),can_place_on_wall:id.Opt(id.BooleanNode()),can_be_placed_on:nd.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:id.Opt(id.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:id.Opt(id.NumberNode({integer:!0,min:1,max:512})),column_radius:nd.IntProvider({min:0,max:60}),height_scale:nd.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:id.NumberNode({min:0,max:1}),stalactite_bluntness:nd.FloatProvider({min:.1,max:10}),stalagmite_bluntness:nd.FloatProvider({min:.1,max:10}),wind_speed:nd.FloatProvider({min:0,max:2}),min_radius_for_wind:id.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:id.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:id.NumberNode({integer:!0,min:1}),spread_height:id.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:nd.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:id.Opt(id.NumberNode({min:0,max:1})),chance_of_directional_spread:id.Opt(id.NumberNode({min:0,max:1})),chance_of_spread_radius2:id.Opt(id.NumberNode({min:0,max:1})),chance_of_spread_radius3:id.Opt(id.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:id.ListNode(id.ObjectNode({chance:id.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:id.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:id.NumberNode({integer:!0,min:1,max:64}),root_radius:id.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:id.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:id.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:id.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:id.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:id.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:id.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sculk_patch":{charge_count:id.NumberNode({integer:!0,min:1,max:32}),amount_per_charge:id.NumberNode({integer:!0,min:1,max:500}),spread_attempts:id.NumberNode({integer:!0,min:1,max:64}),growth_rounds:id.NumberNode({integer:!0,min:0,max:8}),spread_rounds:id.NumberNode({integer:!0,min:0,max:8}),catalyst_chance:id.NumberNode({min:0,max:1})},"minecraft:sea_pickle":{count:nd.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:id.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:nd.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:id.NumberNode({integer:!0}),hole_count:id.NumberNode({integer:!0}),requires_block_below:id.BooleanNode(),valid_blocks:nd.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:id.Opt(id.BooleanNode()),force_dirt:id.Opt(id.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:id.NumberNode({integer:!0,min:0,max:32}),height_rand_a:id.NumberNode({integer:!0,min:0,max:24}),height_rand_b:id.NumberNode({integer:!0,min:0,max:24}),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:bending_trunk_placer":{bend_length:nd.IntProvider({min:1,max:64}),min_height_for_leaves:id.Opt(id.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:nd.IntProvider({min:0,max:16}),offset:nd.IntProvider({min:0,max:16}),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:blob_foliage_placer":{height:id.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:id.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:id.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:id.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:nd.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:nd.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:nd.IntProvider({min:1,max:512}),leaf_placement_attempts:id.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:nd.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:id.ListNode(id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:id.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:id.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:id.NumberNode({integer:!0,min:1}),spread_height:id.NumberNode({integer:!0,min:1}),max_height:id.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:id.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:id.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:id.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",id.Mod(id.ObjectNode({feature:r,placement:id.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",id.Mod(id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:id.Opt(id.NumberNode({min:0,max:80})),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:two_layers_feature_size":{limit:id.Opt(id.NumberNode({integer:!0,min:0,max:81})),lower_size:id.Opt(id.NumberNode({integer:!0,min:0,max:16})),upper_size:id.Opt(id.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:id.Opt(id.NumberNode({integer:!0,min:0,max:80})),upper_limit:id.Opt(id.NumberNode({integer:!0,min:0,max:80})),lower_size:id.Opt(id.NumberNode({integer:!0,min:0,max:16})),middle_size:id.Opt(id.NumberNode({integer:!0,min:0,max:16})),upper_size:id.Opt(id.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:id.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:id.Mod(id.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",id.Mod(id.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:nd.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:id.Mod(id.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:id.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:id.NumberNode({min:-1,max:1}),high_chance:id.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:id.ListNode(i("block_state")),high_states:id.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:id.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:nd.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:id.ListNode(id.Mod(id.ObjectNode({weight:id.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:id.Opt(id.ListNode(id.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",id.Mod(id.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[id.Switch]:[{push:"type"}],[id.Case]:{"minecraft:all_of":{predicates:id.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:id.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:nd.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:nd.Tag({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var od={};Object.defineProperty(od,"__esModule",{value:!0}),od.initNoiseSettingsSchemas=void 0;const ad=Pe,sd=gu,cd=Zu;od.initNoiseSettingsSchemas=function(e,t){const i=ad.Reference.bind(void 0,e),n=ad.StringNode.bind(void 0,t);e.register("noise_settings",ad.Mod(ad.ObjectNode({sea_level:ad.NumberNode({integer:!0}),disable_mob_generation:ad.BooleanNode(),aquifers_enabled:ad.BooleanNode(),ore_veins_enabled:ad.BooleanNode(),legacy_random_source:ad.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:ad.ObjectNode({min_y:ad.NumberNode({integer:!0,min:-2048,max:2047}),height:ad.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ad.NumberNode({integer:!0}),size_vertical:ad.NumberNode({integer:!0}),sampling:ad.ObjectNode({xz_scale:ad.NumberNode(),y_scale:ad.NumberNode(),xz_factor:ad.NumberNode(),y_factor:ad.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider")}),noise_router:ad.ObjectNode({barrier:cd.DensityFunction,fluid_level_floodedness:cd.DensityFunction,fluid_level_spread:cd.DensityFunction,lava:cd.DensityFunction,temperature:cd.DensityFunction,vegetation:cd.DensityFunction,continents:cd.DensityFunction,erosion:cd.DensityFunction,depth:cd.DensityFunction,ridges:cd.DensityFunction,initial_density_without_jaggedness:cd.DensityFunction,final_density:cd.DensityFunction,vein_toggle:cd.DensityFunction,vein_ridged:cd.DensityFunction,vein_gap:cd.DensityFunction}),spawn_target:ad.ListNode(i("parameter_point")),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>sd.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",ad.ObjectNode({target:ad.NumberNode(),size:ad.NumberNode({integer:!0,min:0}),offset:ad.NumberNode({integer:!0})})),e.register("generator_layer",ad.Mod(ad.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ad.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var ld={};Object.defineProperty(ld,"__esModule",{value:!0}),ld.initStructureSchemas=void 0;const ud=Pe,dd=gu,hd=qu;ld.initStructureSchemas=function(e,t){const i=ud.StringNode.bind(void 0,t),n=ud.Reference.bind(void 0,e);e.register("structure",ud.Mod(ud.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:dd.Tag({resource:"$worldgen/biome"}),step:i({enum:"decoration_step"}),spawn_overrides:ud.MapNode(i({enum:"mob_category"}),ud.ObjectNode({bounding_box:i({enum:["piece","full"]}),spawns:hd.MobCategorySpawnSettings})),adapt_noise:ud.Opt(ud.BooleanNode()),[ud.Switch]:[{push:"type"}],[ud.Case]:{"minecraft:jigsaw":{start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ud.NumberNode({integer:!0}),start_height:n("height_provider"),project_start_to_heightmap:ud.Opt(i({enum:"heightmap_type"})),use_expansion_hack:ud.BooleanNode()},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:ud.NumberNode({min:0,max:1}),cluster_probability:ud.NumberNode({min:0,max:1})},"minecraft:ruined_portal":{setups:ud.ListNode(ud.ObjectNode({placement:i({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:ud.NumberNode({min:0,max:1}),mossiness:ud.NumberNode({min:0,max:1}),overgrown:ud.BooleanNode(),vines:ud.BooleanNode(),can_be_cold:ud.BooleanNode(),replace_with_blackstone:ud.BooleanNode(),weight:ud.NumberNode({min:0})}))},"minecraft:shipwreck":{is_beached:ud.Opt(ud.BooleanNode())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6})}))};var pd={};Object.defineProperty(pd,"__esModule",{value:!0}),pd.initStructureSetSchemas=void 0;const md=Pe,fd=gu;pd.initStructureSetSchemas=function(e,t){const i=md.StringNode.bind(void 0,t),n=md.Reference.bind(void 0,e),r=md.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:n("structure_set")}],{choiceContext:"structure_set"});e.register("structure_set",md.ObjectNode({structures:md.ListNode(md.ObjectNode({structure:fd.Tag({resource:"$worldgen/structure"}),weight:md.NumberNode({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",md.Mod(md.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:md.NumberNode({integer:!0,min:0}),frequency_reduction_method:md.Opt(i({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:md.Opt(md.NumberNode({min:0,max:1})),exclusion_zone:md.Opt(md.ObjectNode({other_set:r,chunk_count:md.NumberNode({integer:!0,min:1,max:16})})),locate_offset:md.Opt(md.ListNode(md.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[md.Switch]:[{push:"type"}],[md.Case]:{"minecraft:concentric_rings":{distance:md.NumberNode({integer:!0,min:0,max:1023}),spread:md.NumberNode({integer:!0,min:0,max:1023}),count:md.NumberNode({integer:!0,min:1,max:4095}),preferred_biomes:fd.Tag({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:md.Opt(i({enum:["linear","triangular"]})),spacing:md.NumberNode({integer:!0,min:0,max:4096}),separation:md.Mod(md.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))})))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var gd={};Object.defineProperty(gd,"__esModule",{value:!0}),gd.initSurfaceRuleSchemas=void 0;const _d=Pe;gd.initSurfaceRuleSchemas=function(e,t){const i=_d.StringNode.bind(void 0,t),n=_d.Reference.bind(void 0,e);e.register("material_rule",_d.Mod(_d.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[_d.Switch]:[{push:"type"}],[_d.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:_d.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",_d.Mod(_d.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[_d.Switch]:[{push:"type"}],[_d.Case]:{"minecraft:biome":{biome_is:_d.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:_d.NumberNode(),max_threshold:_d.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:_d.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:_d.BooleanNode(),secondary_depth_range:_d.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:_d.NumberNode({integer:!0}),surface_depth_multiplier:_d.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_d.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:_d.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:_d.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var bd={};Object.defineProperty(bd,"__esModule",{value:!0}),bd.initTemplatePoolSchemas=void 0;const vd=Pe,yd=ed;bd.initTemplatePoolSchemas=function(e,t){const i=vd.Reference.bind(void 0,e),n=vd.StringNode.bind(void 0,t);e.register("template_pool",vd.Mod(vd.ObjectNode({name:n(),fallback:n(),elements:vd.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",vd.Mod(vd.ObjectNode({weight:vd.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",vd.Mod(vd.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[vd.Switch]:[{push:"element_type"}],[vd.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:yd.Processors},"minecraft:list_pool_element":{elements:vd.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:yd.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))};var wd={};Object.defineProperty(wd,"__esModule",{value:!0}),wd.initWorldPresetSchemas=void 0;const xd=Pe;wd.initWorldPresetSchemas=function(e,t){const i=xd.StringNode.bind(void 0,t),n=xd.Reference.bind(void 0,e);e.register("world_preset",xd.Mod(xd.ObjectNode({dimensions:xd.MapNode(i({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),n("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),e.register("flat_level_generator_preset",xd.Mod(xd.ObjectNode({display:i({validator:"resource",params:{pool:"item"}}),settings:n("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))},Object.defineProperty(Hu,"__esModule",{value:!0}),Hu.initWorldgenSchemas=void 0;const Nd=qu,kd=Vu,Ad=Xu,Cd=Zu,Od=Qu,Sd=od,Ed=ed,Fd=ld,Dd=pd,Bd=gd,Ld=bd,Md=wd;Hu.initWorldgenSchemas=function(e,t){Ed.initProcessorListSchemas(e,t),Cd.initDensityFunctionSchemas(e,t),Nd.initBiomeSchemas(e,t),kd.initCarverSchemas(e,t),Ad.initDecoratorSchemas(e,t),Od.initFeatureSchemas(e,t),Sd.initNoiseSettingsSchemas(e,t),Fd.initStructureSchemas(e,t),Dd.initStructureSetSchemas(e,t),Bd.initSurfaceRuleSchemas(e,t),Ld.initTemplatePoolSchemas(e,t),Md.initWorldPresetSchemas(e,t)};var Td={};Object.defineProperty(Td,"__esModule",{value:!0}),Td.initWorldSettingsSchemas=void 0;const Rd=Pe;Td.initWorldSettingsSchemas=function(e,t){const i=Rd.Reference.bind(void 0,e),n=Rd.StringNode.bind(void 0,t);e.register("world_settings",Rd.Mod(Rd.ObjectNode({generate_features:Rd.BooleanNode(),bonus_chest:Rd.BooleanNode(),seed:Rd.NumberNode({integer:!0}),dimensions:Rd.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(au,"__esModule",{value:!0}),au.initSchemas=void 0;const $d=su,jd=lu,Id=gu,Pd=_u,zd=yu,Ud=Nu,Wd=Cu,Hd=Eu,qd=Mu,Vd=Ru,Gd=ju,Kd=Pu,Xd=Uu,Jd=Hu,Yd=Td;au.initSchemas=function(e,t){Id.initCommonSchemas(e,t),$d.initAdvancementSchemas(e,t),jd.initAssetsSchemas(e,t),Pd.initConditionSchemas(e,t),Ud.initDimensionTypeSchemas(e,t),zd.initDimensionSchemas(e,t),Wd.initItemModifierSchemas(e,t),Hd.initLootTableSchemas(e,t),qd.initPackMcmetaSchemas(e,t),Vd.initPredicatesSchemas(e,t),Gd.initRecipeSchemas(e,t),Kd.initTagsSchemas(e,t),Xd.initTextComponentSchemas(e,t),Jd.initWorldgenSchemas(e,t),Yd.initWorldSettingsSchemas(e,t)};var Zd=Ie&&Ie.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Qd=Ie&&Ie.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),eh=Ie&&Ie.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Zd(t,e,i);return Qd(t,e),t};Object.defineProperty(ru,"__esModule",{value:!0});var th=ru.getSchemas=ru.getCollections=void 0;const ih=Pe,nh=ou,rh=au;var oh=ru.lootContext=eh(Fu);var ah=ru.getCollections=function(){const e=new ih.CollectionRegistry;return nh.initCollections(e),e};th=ru.getSchemas=function(e){const t=new ih.SchemaRegistry;return rh.initSchemas(t,e),t};var sh=Object.freeze(Object.assign(Object.create(null),ru,{[Symbol.toStringTag]:"Module",get getSchemas(){return th},get getCollections(){return ah},lootContext:oh,default:ru})); +/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function ch(e){let t=e.length;for(;--t>=0;)e[t]=0}const lh=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),uh=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),dh=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),hh=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ph=new Array(576);ch(ph);const mh=new Array(60);ch(mh);const fh=new Array(512);ch(fh);const gh=new Array(256);ch(gh);const _h=new Array(29);ch(_h);const bh=new Array(30);function vh(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}let yh,wh,xh;function Nh(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}ch(bh);const kh=e=>e<256?fh[e]:fh[256+(e>>>7)],Ah=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Ch=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{Ch(e,i[2*t],i[2*t+1])},Sh=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},Eh=(e,t,i)=>{const n=new Array(16);let r,o,a=0;for(r=1;r<=15;r++)n[r]=a=a+i[r-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=Sh(n[t]++,t))}},Fh=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},Dh=e=>{e.bi_valid>8?Ah(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Bh=(e,t,i,n)=>{const r=2*t,o=2*i;return e[r]{const n=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let n,r,o,a,s=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],r=e.pending_buf[e.l_buf+s],s++,0===n?Oh(e,r,t):(o=gh[r],Oh(e,o+256+1,t),a=lh[o],0!==a&&(r-=_h[o],Ch(e,r,a)),n--,o=kh(n),Oh(e,o,i),a=uh[o],0!==a&&(n-=bh[o],Ch(e,n,a)))}while(s{const i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)Lh(e,i,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Lh(e,i,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,i[2*c]=i[2*a]+i[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,i[2*a+1]=i[2*s+1]=c,e.heap[1]=c++,Lh(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,u,d,h,p,m,f=0;for(h=0;h<=15;h++)e.bl_count[h]=0;for(i[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],h=i[2*i[2*u+1]+1]+1,h>c&&(h=c,f++),i[2*u+1]=h,u>n||(e.bl_count[h]++,p=0,u>=s&&(p=a[u-s]),m=i[2*u],e.opt_len+=m*(h+p),o&&(e.static_len+=m*(r[2*u+1]+p)));if(0!==f){do{for(h=c-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(h=c;0!==h;h--)for(u=e.bl_count[h];0!==u;)d=e.heap[--l],d>n||(i[2*d+1]!==h&&(e.opt_len+=(h-i[2*d+1])*i[2*d],i[2*d+1]=h),u--)}})(e,t),Eh(i,l,e.bl_count)},Rh=(e,t,i)=>{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(i+1)+1]=65535,n=0;n<=i;n++)r=a,a=t[2*(n+1)+1],++s{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),n=0;n<=i;n++)if(r=a,a=t[2*(n+1)+1],!(++s{Ch(e,0+(n?1:0),3),((e,t,i,n)=>{Dh(e),n&&(Ah(e,i),Ah(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var Ph={_tr_init:e=>{jh||((()=>{let e,t,i,n,r;const o=new Array(16);for(i=0,n=0;n<28;n++)for(_h[n]=i,e=0;e<1<>=7;n<30;n++)for(bh[n]=r<<7,e=0;e<1<{let r,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Th(e,e.l_desc),Th(e,e.d_desc),a=(e=>{let t;for(Rh(e,e.dyn_ltree,e.l_desc.max_code),Rh(e,e.dyn_dtree,e.d_desc.max_code),Th(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*hh[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=r&&(r=o)):r=o=i+5,i+4<=r&&-1!==t?Ih(e,t,i,n):4===e.strategy||o===r?(Ch(e,2+(n?1:0),3),Mh(e,ph,mh)):(Ch(e,4+(n?1:0),3),((e,t,i,n)=>{let r;for(Ch(e,t-257,5),Ch(e,i-1,5),Ch(e,n-4,4),r=0;r(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(gh[i]+256+1)]++,e.dyn_dtree[2*kh(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Ch(e,2,3),Oh(e,256,ph),(e=>{16===e.bi_valid?(Ah(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var zh=(e,t,i,n)=>{let r=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==i;){a=i>2e3?2e3:i,i-=a;do{r=r+t[n++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0};const Uh=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var Wh=(e,t,i,n)=>{const r=Uh,o=n+i;e^=-1;for(let a=n;a>>8^r[255&(e^t[a])];return-1^e},Hh={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},qh={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Vh,_tr_stored_block:Gh,_tr_flush_block:Kh,_tr_tally:Xh,_tr_align:Jh}=Ph,{Z_NO_FLUSH:Yh,Z_PARTIAL_FLUSH:Zh,Z_FULL_FLUSH:Qh,Z_FINISH:ep,Z_BLOCK:tp,Z_OK:ip,Z_STREAM_END:np,Z_STREAM_ERROR:rp,Z_DATA_ERROR:op,Z_BUF_ERROR:ap,Z_DEFAULT_COMPRESSION:sp,Z_FILTERED:cp,Z_HUFFMAN_ONLY:lp,Z_RLE:up,Z_FIXED:dp,Z_DEFAULT_STRATEGY:hp,Z_UNKNOWN:pp,Z_DEFLATED:mp}=qh,fp=(e,t)=>(e.msg=Hh[t],t),gp=e=>(e<<1)-(e>4?9:0),_p=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let bp=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},yp=(e,t)=>{Kh(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,vp(e.strm)},wp=(e,t)=>{e.pending_buf[e.pending++]=t},xp=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Np=(e,t,i,n)=>{let r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=zh(e.adler,t,r,i):2===e.state.wrap&&(e.adler=Wh(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},kp=(e,t)=>{let i,n,r=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,h=e.strstart+258;let p=l[o+a-1],m=l[o+a];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+a]===m&&l[i+a-1]===p&&l[i]===l[o]&&l[++i]===l[o+1]){o+=2,i++;do{}while(l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&oa){if(e.match_start=t,a=n,n>=s)break;p=l[o+a-1],m=l[o+a]}}}while((t=d[t&u])>c&&0!=--r);return a<=e.lookahead?a:e.lookahead},Ap=e=>{const t=e.w_size;let i,n,r,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do{r=e.head[--i],e.head[i]=r>=t?r-t:0}while(--n);n=t,i=n;do{r=e.prev[--i],e.prev[i]=r>=t?r-t:0}while(--n);o+=t}if(0===e.strm.avail_in)break;if(n=Np(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=n,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=bp(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=bp(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Cp=(e,t)=>{let i,n;for(;;){if(e.lookahead<262){if(Ap(e),e.lookahead<262&&t===Yh)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=bp(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-262&&(e.match_length=kp(e,i)),e.match_length>=3)if(n=Xh(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=bp(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=bp(e,e.ins_h,e.window[e.strstart+1]);else n=Xh(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(yp(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ep?(yp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(yp(e,!1),0===e.strm.avail_out)?1:2},Op=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<262){if(Ap(e),e.lookahead<262&&t===Yh)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=bp(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=Xh(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=bp(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(yp(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=Xh(e,0,e.window[e.strstart-1]),n&&yp(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Xh(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ep?(yp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(yp(e,!1),0===e.strm.avail_out)?1:2};function Sp(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}const Ep=[new Sp(0,0,0,0,((e,t)=>{let i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ap(e),0===e.lookahead&&t===Yh)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+i;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,yp(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(yp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ep?(yp(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(yp(e,!1),e.strm.avail_out),1)})),new Sp(4,4,8,4,Cp),new Sp(4,5,16,8,Cp),new Sp(4,6,32,32,Cp),new Sp(4,4,16,16,Op),new Sp(8,16,32,32,Op),new Sp(8,16,128,128,Op),new Sp(8,32,128,256,Op),new Sp(32,128,258,1024,Op),new Sp(32,258,258,4096,Op)];function Fp(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=mp,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),_p(this.dyn_ltree),_p(this.dyn_dtree),_p(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),_p(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),_p(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Dp=e=>{if(!e||!e.state)return fp(e,rp);e.total_in=e.total_out=0,e.data_type=pp;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=Yh,Vh(t),ip},Bp=e=>{const t=Dp(e);var i;return t===ip&&((i=e.state).window_size=2*i.w_size,_p(i.head),i.max_lazy_match=Ep[i.level].max_lazy,i.good_match=Ep[i.level].good_length,i.nice_match=Ep[i.level].nice_length,i.max_chain_length=Ep[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Lp=(e,t,i,n,r,o)=>{if(!e)return rp;let a=1;if(t===sp&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),r<1||r>9||i!==mp||n<8||n>15||t<0||t>9||o<0||o>dp)return fp(e,rp);8===n&&(n=9);const s=new Fp;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<Lp(e,t,mp,15,8,hp),deflateInit2:Lp,deflateReset:Bp,deflateResetKeep:Dp,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?rp:(e.state.gzhead=t,ip):rp,deflate:(e,t)=>{let i,n;if(!e||!e.state||t>tp||t<0)return e?fp(e,rp):rp;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==ep)return fp(e,0===e.avail_out?ap:rp);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,wp(r,31),wp(r,139),wp(r,8),r.gzhead?(wp(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),wp(r,255&r.gzhead.time),wp(r,r.gzhead.time>>8&255),wp(r,r.gzhead.time>>16&255),wp(r,r.gzhead.time>>24&255),wp(r,9===r.level?2:r.strategy>=lp||r.level<2?4:0),wp(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(wp(r,255&r.gzhead.extra.length),wp(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Wh(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(wp(r,0),wp(r,0),wp(r,0),wp(r,0),wp(r,0),wp(r,9===r.level?2:r.strategy>=lp||r.level<2?4:0),wp(r,3),r.status=113);else{let t=mp+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=lp||r.level<2?0:r.level<6?1:6===r.level?2:3,t|=i<<6,0!==r.strstart&&(t|=32),t+=31-t%31,r.status=113,xp(r,t),0!==r.strstart&&(xp(r,e.adler>>>16),xp(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),vp(e),i=r.pending,r.pending!==r.pending_buf_size));)wp(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),vp(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),vp(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Wh(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&vp(e),r.pending+2<=r.pending_buf_size&&(wp(r,255&e.adler),wp(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(vp(e),0===e.avail_out)return r.last_flush=-1,ip}else if(0===e.avail_in&&gp(t)<=gp(o)&&t!==ep)return fp(e,ap);if(666===r.status&&0!==e.avail_in)return fp(e,ap);if(0!==e.avail_in||0!==r.lookahead||t!==Yh&&666!==r.status){let i=r.strategy===lp?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Ap(e),0===e.lookahead)){if(t===Yh)return 1;break}if(e.match_length=0,i=Xh(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(yp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ep?(yp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(yp(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===up?((e,t)=>{let i,n,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(Ap(e),e.lookahead<=258&&t===Yh)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,n=a[r],n===a[++r]&&n===a[++r]&&n===a[++r])){o=e.strstart+258;do{}while(n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=Xh(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=Xh(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(yp(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ep?(yp(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(yp(e,!1),0===e.strm.avail_out)?1:2})(r,t):Ep[r.level].func(r,t);if(3!==i&&4!==i||(r.status=666),1===i||3===i)return 0===e.avail_out&&(r.last_flush=-1),ip;if(2===i&&(t===Zh?Jh(r):t!==tp&&(Gh(r,0,0,!1),t===Qh&&(_p(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),vp(e),0===e.avail_out))return r.last_flush=-1,ip}return t!==ep?ip:r.wrap<=0?np:(2===r.wrap?(wp(r,255&e.adler),wp(r,e.adler>>8&255),wp(r,e.adler>>16&255),wp(r,e.adler>>24&255),wp(r,255&e.total_in),wp(r,e.total_in>>8&255),wp(r,e.total_in>>16&255),wp(r,e.total_in>>24&255)):(xp(r,e.adler>>>16),xp(r,65535&e.adler)),vp(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?ip:np)},deflateEnd:e=>{if(!e||!e.state)return rp;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?fp(e,rp):(e.state=null,113===t?fp(e,op):ip)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return rp;const n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return rp;if(1===r&&(e.adler=zh(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){0===r&&(_p(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(i-n.w_size,i),0),t=e,i=n.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Ap(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=bp(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,Ap(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,ip},deflateInfo:"pako deflate (from Nodeca project)"};const Tp=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Rp=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Tp(i,t)&&(e[t]=i[t])}}return e},$p=e=>{let t=0;for(let n=0,r=e.length;n=252?6:qk>=248?5:qk>=240?4:qk>=224?3:qk>=192?2:1;Ip[254]=Ip[254]=1;var Pp=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,n,r,o,a=e.length,s=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},zp=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,r;const o=new Array(2*i);for(r=0,n=0;n4)o[r++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&jp)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+Ip[e[i]]>t?i:t};var Wp=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Hp=Object.prototype.toString,{Z_NO_FLUSH:qp,Z_SYNC_FLUSH:Vp,Z_FULL_FLUSH:Gp,Z_FINISH:Kp,Z_OK:Xp,Z_STREAM_END:Jp,Z_DEFAULT_COMPRESSION:Yp,Z_DEFAULT_STRATEGY:Zp,Z_DEFLATED:Qp}=qh;function em(e){this.options=Rp({level:Yp,method:Qp,chunkSize:16384,windowBits:15,memLevel:8,strategy:Zp},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wp,this.strm.avail_out=0;let i=Mp.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Xp)throw new Error(Hh[i]);if(t.header&&Mp.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Pp(t.dictionary):"[object ArrayBuffer]"===Hp.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Mp.deflateSetDictionary(this.strm,e),i!==Xp)throw new Error(Hh[i]);this._dict_set=!0}}em.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Kp:qp,"string"==typeof e?i.input=Pp(e):"[object ArrayBuffer]"===Hp.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(o===Vp||o===Gp)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=Mp.deflate(i,o),r===Jp)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Mp.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Xp;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},em.prototype.onData=function(e){this.chunks.push(e)},em.prototype.onEnd=function(e){e===Xp&&(this.result=$p(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var tm=function(e,t){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,N,k,A;const C=e.state;i=e.next_in,k=e.input,n=i+(e.avail_in-5),r=e.next_out,A=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),s=C.dmax,c=C.wsize,l=C.whave,u=C.wnext,d=C.window,h=C.hold,p=C.bits,m=C.lencode,f=C.distcode,g=(1<>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)A[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<>>=v,p-=v),p<15&&(h+=k[i++]<>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<s){e.msg="invalid distance too far back",C.mode=30;break e}if(h>>>=v,p-=v,v=r-o,w>v){if(v=w-v,v>l&&C.sane){e.msg="invalid distance too far back",C.mode=30;break e}if(x=0,N=d,0===u){if(x+=c-v,v2;)A[r++]=N[x++],A[r++]=N[x++],A[r++]=N[x++],y-=3;y&&(A[r++]=N[x++],y>1&&(A[r++]=N[x++]))}else{x=r-w;do{A[r++]=A[x++],A[r++]=A[x++],A[r++]=A[x++],y-=3}while(y>2);y&&(A[r++]=A[x++],y>1&&(A[r++]=A[x++]))}break}}break}}while(i>3,i-=y,p-=y<<3,h&=(1<{const c=s.bits;let l,u,d,h,p,m,f=0,g=0,_=0,b=0,v=0,y=0,w=0,x=0,N=0,k=0,A=null,C=0;const O=new Uint16Array(16),S=new Uint16Array(16);let E,F,D,B=null,L=0;for(f=0;f<=15;f++)O[f]=0;for(g=0;g=1&&0===O[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+O[f];for(g=0;g852||2===e&&N>592)return 1;for(;;){E=f-w,a[g]m?(F=B[L+a[g]],D=A[C+a[g]]):(F=96,D=0),l=1<>w)+u]=E<<24|F<<16|D|0}while(0!==u);for(l=1<>=1;if(0!==l?(k&=l-1,k+=l):k=0,g++,0==--O[f]){if(f===b)break;f=t[i+a[g]]}if(f>v&&(k&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<852||2===e&&N>592)return 1;d=k&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==k&&(r[p+k]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:sm,Z_BLOCK:cm,Z_TREES:lm,Z_OK:um,Z_STREAM_END:dm,Z_NEED_DICT:hm,Z_STREAM_ERROR:pm,Z_DATA_ERROR:mm,Z_MEM_ERROR:fm,Z_BUF_ERROR:gm,Z_DEFLATED:_m}=qh,bm=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function vm(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ym=e=>{if(!e||!e.state)return pm;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,um},wm=e=>{if(!e||!e.state)return pm;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ym(e)},xm=(e,t)=>{let i;if(!e||!e.state)return pm;const n=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?pm:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,wm(e))},Nm=(e,t)=>{if(!e)return pm;const i=new vm;e.state=i,i.window=null;const n=xm(e,t);return n!==um&&(e.state=null),n};let km,Am,Cm=!0;const Om=e=>{if(Cm){km=new Int32Array(512),Am=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(am(1,e.lens,0,288,km,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;am(2,e.lens,0,32,Am,0,e.work,{bits:5}),Cm=!1}e.lencode=km,e.lenbits=9,e.distcode=Am,e.distbits=5},Sm=(e,t,i,n)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(t.subarray(i-n,i-n+r),o.wnext),(n-=r)?(o.window.set(t.subarray(i-n,i),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whaveNm(e,15),inflateInit2:Nm,inflate:(e,t)=>{let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,N,k=0;const A=new Uint8Array(4);let C,O;const S=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return pm;i=e.state,12===i.mode&&(i.mode=13),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,d=s,h=c,N=um;e:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Wh(i.check,A,2,0),l=0,u=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",i.mode=30;break}if((15&l)!==_m){e.msg="unknown compression method",i.mode=30;break}if(l>>>=4,u-=4,x=8+(15&l),0===i.wbits)i.wbits=x;else if(x>i.wbits){e.msg="invalid window size",i.mode=30;break}i.dmax=1<>8&1),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Wh(i.check,A,2,0)),l=0,u=0,i.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,i.check=Wh(i.check,A,4,0)),l=0,u=0,i.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&i.flags&&(A[0]=255&l,A[1]=l>>>8&255,i.check=Wh(i.check,A,2,0)),l=0,u=0,i.mode=5;case 5:if(1024&i.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Wh(i.check,A,2,0)),l=0,u=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(p=i.length,p>s&&(p=s),p&&(i.head&&(x=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(o,o+p),x)),512&i.flags&&(i.check=Wh(i.check,n,p,o)),s-=p,o+=p,i.length-=p),i.length))break e;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===s)break e;p=0;do{x=n[o+p++],i.head&&x&&i.length<65536&&(i.head.name+=String.fromCharCode(x))}while(x&&p>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&u,u-=7&u,i.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<>>=1,u-=1,3&l){case 0:i.mode=14;break;case 1:if(Om(i),i.mode=20,t===lm){l>>>=2,u-=2;break e}break;case 2:i.mode=17;break;case 3:e.msg="invalid block type",i.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=30;break}if(i.length=65535&l,l=0,u=0,i.mode=15,t===lm)break e;case 15:i.mode=16;case 16:if(p=i.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;r.set(n.subarray(o,o+p),a),s-=p,o+=p,c-=p,a+=p,i.length-=p;break}i.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,u-=5,i.ndist=1+(31&l),l>>>=5,u-=5,i.ncode=4+(15&l),l>>>=4,u-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=30;break}i.have=0,i.mode=18;case 18:for(;i.have>>=3,u-=3}for(;i.have<19;)i.lens[S[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},N=am(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,N){e.msg="invalid code lengths set",i.mode=30;break}i.have=0,i.mode=19;case 19:for(;i.have>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=g,u-=g,i.lens[i.have++]=b;else{if(16===b){for(O=g+2;u>>=g,u-=g,0===i.have){e.msg="invalid bit length repeat",i.mode=30;break}x=i.lens[i.have-1],p=3+(3&l),l>>>=2,u-=2}else if(17===b){for(O=g+3;u>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(O=g+7;u>>=g,u-=g,x=0,p=11+(127&l),l>>>=7,u-=7}if(i.have+p>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=30;break}for(;p--;)i.lens[i.have++]=x}}if(30===i.mode)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=30;break}if(i.lenbits=9,C={bits:i.lenbits},N=am(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,N){e.msg="invalid literal/lengths set",i.mode=30;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},N=am(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,N){e.msg="invalid distances set",i.mode=30;break}if(i.mode=20,t===lm)break e;case 20:i.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,tm(e,h),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,12===i.mode&&(i.back=-1);break}for(i.back=0;k=i.lencode[l&(1<>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,i.length=b,0===_){i.mode=26;break}if(32&_){i.back=-1,i.mode=12;break}if(64&_){e.msg="invalid literal/length code",i.mode=30;break}i.extra=15&_,i.mode=22;case 22:if(i.extra){for(O=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;k=i.distcode[l&(1<>>24,_=k>>>16&255,b=65535&k,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=k>>>24,_=k>>>16&255,b=65535&k,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,64&_){e.msg="invalid distance code",i.mode=30;break}i.offset=b,i.extra=15&_,i.mode=24;case 24:if(i.extra){for(O=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=30;break}i.mode=25;case 25:if(0===c)break e;if(p=h-c,i.offset>p){if(p=i.offset-p,p>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=30;break}p>i.wnext?(p-=i.wnext,m=i.wsize-p):m=i.wnext-p,p>i.length&&(p=i.length),f=i.window}else f=r,m=a-i.offset,p=i.length;p>c&&(p=c),c-=p,i.length-=p;do{r[a++]=f[m++]}while(--p);0===i.length&&(i.mode=21);break;case 26:if(0===c)break e;r[a++]=i.length,c--,i.mode=21;break;case 27:if(i.wrap){for(;u<32;){if(0===s)break e;s--,l|=n[o++]<{if(!e||!e.state)return pm;let t=e.state;return t.window&&(t.window=null),e.state=null,um},inflateGetHeader:(e,t)=>{if(!e||!e.state)return pm;const i=e.state;return 0==(2&i.wrap)?pm:(i.head=t,t.done=!1,um)},inflateSetDictionary:(e,t)=>{const i=t.length;let n,r,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?pm:11===n.mode&&(r=1,r=zh(r,t,i,0),r!==n.check)?mm:(o=Sm(e,t,i,i),o?(n.mode=31,fm):(n.havedict=1,um))):pm},inflateInfo:"pako inflate (from Nodeca project)"};var Fm=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Dm=Object.prototype.toString,{Z_NO_FLUSH:Bm,Z_FINISH:Lm,Z_OK:Mm,Z_STREAM_END:Tm,Z_NEED_DICT:Rm,Z_STREAM_ERROR:$m,Z_DATA_ERROR:jm,Z_MEM_ERROR:Im}=qh;function Pm(e){this.options=Rp({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Wp,this.strm.avail_out=0;let i=Em.inflateInit2(this.strm,t.windowBits);if(i!==Mm)throw new Error(Hh[i]);if(this.header=new Fm,Em.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Pp(t.dictionary):"[object ArrayBuffer]"===Dm.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Em.inflateSetDictionary(this.strm,t.dictionary),i!==Mm)))throw new Error(Hh[i])}Pm.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?Lm:Bm,"[object ArrayBuffer]"===Dm.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),o=Em.inflate(i,a),o===Rm&&r&&(o=Em.inflateSetDictionary(i,r),o===Mm?o=Em.inflate(i,a):o===jm&&(o=Rm));i.avail_in>0&&o===Tm&&i.state.wrap>0&&0!==e[i.next_in];)Em.inflateReset(i),o=Em.inflate(i,a);switch(o){case $m:case jm:case Rm:case Im:return this.onEnd(o),this.ended=!0,!1}if(s=i.avail_out,i.next_out&&(0===i.avail_out||o===Tm))if("string"===this.options.to){let e=Up(i.output,i.next_out),t=i.next_out-e,r=zp(i.output,e);i.next_out=t,i.avail_out=n-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==Mm||0!==s){if(o===Tm)return o=Em.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Pm.prototype.onData=function(e){this.chunks.push(e)},Pm.prototype.onEnd=function(e){e===Mm&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=$p(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var zm,Um,Wm={exports:{}},Hm={exports:{}};zm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Um={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Um.rotl(e,8)|4278255360&Um.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,n=0;i>>5]|=e[i]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i<32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],i=0;i>>6*(3-r)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],i=0,n=0;i>>6-2*n);return t}},Hm.exports=Um;var qm={utf8:{stringToBytes:function(e){return qm.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(qm.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p>>0,u=u+v>>>0,d=d+y>>>0,h=h+w>>>0}return e.endian([l,u,d,h])};r._ff=function(e,t,i,n,r,o,a){var s=e+(t&i|~t&n)+(r>>>0)+a;return(s<>>32-o)+t},r._gg=function(e,t,i,n,r,o,a){var s=e+(t&n|i&~n)+(r>>>0)+a;return(s<>>32-o)+t},r._hh=function(e,t,i,n,r,o,a){var s=e+(t^i^n)+(r>>>0)+a;return(s<>>32-o)+t},r._ii=function(e,t,i,n,r,o,a){var s=e+(i^(t|~n))+(r>>>0)+a;return(s<>>32-o)+t},r._blocksize=16,r._digestsize=16,Wm.exports=function(t,i){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(r(t,i));return i&&i.asBytes?o:i&&i.asString?n.bytesToString(o):e.bytesToHex(o)}}();var Xm,Jm,Ym=Wm.exports;(Jm=Xm||(Xm={})).UP="up",Jm.DOWN="down",Jm.NORTH="north",Jm.EAST="east",Jm.SOUTH="south",Jm.WEST="west";const Zm={[Xm.UP]:[0,1,0],[Xm.DOWN]:[0,-1,0],[Xm.NORTH]:[0,0,-1],[Xm.EAST]:[1,0,0],[Xm.SOUTH]:[0,0,1],[Xm.WEST]:[-1,0,0]};var Qm,ef,tf,nf;function rf(e,t,i){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==i)throw new Error(`Expected ${t} to be of type ${i}, but found ${e[t].type}`);return e[t].value}function of(e){let t=null;return()=>(null==t&&(t=e()),t)}function af(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}(tf=Xm||(Xm={})).ALL=[tf.UP,tf.DOWN,tf.NORTH,tf.EAST,tf.SOUTH,tf.WEST],tf.normal=function(e){return Zm[e]},(ef=Qm||(Qm={})).create=function(e,t,i){return[e,t,i]},ef.ZERO=ef.create(0,0,0),ef.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},ef.towards=function(e,t){return ef.offset(e,...Xm.normal(t))},ef.equals=function(e,t){return e===t||e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},ef.magnitude=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,i){var n;const r=null!=(n=t(e))?n:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,i(t)])))},e.compose=function(e,t,i){const n=t(e);return n?i(n):void 0},e.readEnum=function(e,t){return"string"!=typeof e?t[0]:t.includes(e)?e:t[0]}}(nf||(nf={}));const sf=class{constructor(e,t){if(this.namespace=e,this.path=t,!e.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${e}:${t}`);if(!t.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${e}:${t}`)}equals(e){return this===e||this.namespace===e.namespace&&this.path===e.path}toString(){return`${this.namespace}:${this.path}`}static create(e){return new sf(this.DEFAULT_NAMESPACE,e)}static parse(e){const t=e.indexOf(this.SEPARATOR);if(t>=0){const i=t>=1?e.substring(0,t):this.DEFAULT_NAMESPACE,n=e.substring(t+1);return new sf(i,n)}return new sf(this.DEFAULT_NAMESPACE,e)}};let cf=sf;cf.DEFAULT_NAMESPACE="minecraft",cf.SEPARATOR=":";var lf=Object.defineProperty,uf=Object.defineProperties,df=Object.getOwnPropertyDescriptors,hf=Object.getOwnPropertySymbols,pf=Object.prototype.hasOwnProperty,mf=Object.prototype.propertyIsEnumerable,ff=(e,t,i)=>t in e?lf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;const gf=class{constructor(e,t={}){this.properties=t,this.name="string"==typeof e?cf.parse(e):e}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return this.is(gf.WATER)||this.is(gf.LAVA)}equals(e){return!!this.name.equals(e.name)&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}is(e){return this.name.equals(e.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=cf.parse(rf(e.value,"Name","string")),i=function(e,t){try{return e()}catch(i){return t}}((()=>rf(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>{return n=((e,t)=>{for(var i in t||(t={}))pf.call(t,i)&&ff(e,i,t[i]);if(hf)for(var i of hf(t))mf.call(t,i)&&ff(e,i,t[i]);return e})({},e),r={[t]:rf(i,t,"string")},uf(n,df(r));var n,r}),{});return new gf(t,n)}static fromJson(e){var t,i;const n=null!=(t=nf.readObject(e))?t:{},r=cf.parse(null!=(i=nf.readString(n.Name))?i:gf.STONE.name.toString()),o=nf.readMap(n.Properties,(e=>{var t;return null!=(t=nf.readString(e))?t:""}));return new gf(r,o)}};let _f=gf;_f.AIR=new gf(cf.create("air")),_f.STONE=new gf(cf.create("stone")),_f.WATER=new gf(cf.create("water"),{level:"0"}),_f.LAVA=new gf(cf.create("lava"),{level:"0"});const bf=class{constructor(e){this.minY=e,this.storage=Array(bf.SIZE).fill(0),this.palette=[_f.AIR]}get minBlockY(){return this.minY<<4}index(e,t,i){return(e<<8)+(t<<4)+i}getBlockState(e,t,i){var n;const r=this.storage[this.index(e,t,i)];return null!=(n=this.palette[r])?n:_f.AIR}setBlockState(e,t,i,n){let r=this.palette.findIndex((e=>e.equals(n)));-1===r&&(r=this.palette.length,this.palette.push(n)),this.storage[this.index(e,t,i)]=r}};let vf=bf;vf.WIDTH=16,vf.SIZE=bf.WIDTH*bf.WIDTH*bf.WIDTH;class yf{constructor(e,t,i){this.minY=e,this.height=t,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,n,r]=e,o=this.sections[this.getSectionIndex(n)];return null!=(t=null==o?void 0:o.getBlockState(15&i,15&n,15&r))?t:_f.AIR}setBlockState(e,t){const[i,n,r]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(_f.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&i,15&n,15&r,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new vf(this.minSection+e)),this.sections[e]}}var wf,xf;!function(e){function t(e,t){return BigInt(4294967295&e)|BigInt(4294967295&t)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(wf||(wf={})),function(e){function t(e){return{value:()=>e,key:()=>{}}}function i(e,t){return{value:()=>e.getOrThrow(t),key:()=>t}}e.parser=function(e,n){return r=>"string"==typeof r?i(e,cf.parse(r)):t(n(r))},e.direct=t,e.reference=i}(xf||(xf={}));const Nf=class{constructor(e,t){this.key=e,this.parser=t,this.storage=new Map,this.builtin=new Map}register(e,t,i){return this.storage.set(e.toString(),t),i&&this.builtin.set(e.toString(),t),xf.reference(this,e)}keys(){return[...this.storage.keys()].map((e=>cf.parse(e)))}get(e){return this.storage.get(e.toString())}getOrThrow(e){const t=this.storage.get(e.toString());if(void 0===t)throw new Error(`Missing key in ${this.key.toString()}: ${e.toString()}`);return t}parse(e){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(e)}clear(){this.storage.clear();for(const[e,t]of this.builtin.entries())this.storage.set(e,t);return this}assign(e){if(!this.key.equals(e.key))throw new Error(`Cannot assign registry of type ${e.key.toString()} to registry of type ${this.key.toString()}`);for(const t of e.keys())this.storage.set(t.toString(),e.getOrThrow(t));return this}cloneEmpty(){return new Nf(this.key,this.parser)}};let kf=Nf;function Af(e){return e*e}function Cf(e,t,i){return Math.max(t,Math.min(i,e))}function Of(e,t,i){return t+e*(i-t)}function Sf(e,t,i,n,r,o){return Of(t,Of(e,i,n),Of(e,r,o))}function Ef(e,t,i){return 0===e?t():1===e?i():t()+e*(i()-t())}function Ff(e,t,i,n,r,o){return Ef(t,(()=>Ef(e,i,n)),(()=>Ef(e,r,o)))}function Df(e,t,i){return i<0?e:i>1?t:Of(i,e,t)}function Bf(e,t,i){return(e-t)/(i-t)}function Lf(e){return e*e*e*(e*(6*e-15)+10)}function Mf(e,t,i,n,r){return Of(Bf(e,t,i),n,r)}function Tf(e,t,i,n,r){return Df(n,r,Bf(e,t,i))}function Rf(e,t,i){let n=BigInt(3129871*e)^BigInt(i)*BigInt(116129781)^BigInt(t);return n=n*n*BigInt(42317861)+n*BigInt(11),n>>BigInt(16)}function $f(e,t,i,n,r,o,a,s){return BigInt(e)<{var t;return null!=(t=nf.readObject(e))?t:{}})))?a:[];if(0===d.length)return new t(0);for(const t of d){const i=null!=(s=nf.readNumber(t.location))?s:0,n=e(t.value,r),o=null!=(c=nf.readNumber(t.derivative))?c:0;u.addPoint(i,n,o)}return u};class t{constructor(e){this.value=e}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}e.Constant=t;class i{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}compute(e){const t=this.coordinate.compute(e),i=function(e,t,i){let n=t-e;for(;n>0;){const t=Math.floor(n/2),r=e+t;i(r)?n=t:(e=r+1,n-=t+1)}return e}(0,this.locations.length,(e=>te.min())))}max(){return Math.max(...this.values.map((e=>e.max())))}mapAll(e){return new i(e(this.coordinate),this.locations,this.values.map((t=>t.mapAll(e))),this.derivatives)}addPoint(t,i,n=0){return this.locations.push(t),this.values.push("number"==typeof i?new e.Constant(i):i),this.derivatives.push(n),this}}e.MultiPoint=i}(jf||(jf={}));const If=class{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new If(this.nextLong())}forkPositional(){return new zf(this.nextLong())}setSeed(e){this.seed=e^If.MULTIPLIER&If.MODULUS_MASK}advance(){this.seed=this.seed*If.MULTIPLIER+If.INCREMENT&If.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(If.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,i;for(;(t=this.next(31))-(i=t%e)+(e-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>Uf.BIGINT_30)*Uf.STAFFORD_1&Uf.MAX_ULONG)^e>>Uf.BIGINT_27)*Uf.STAFFORD_2&Uf.MAX_ULONG)^e>>Uf.BIGINT_31)&Uf.MAX_ULONG}static upgradeSeedTo128bit(e){e<0&&(e+=Uf.POW2_60);const t=e^Uf.SILVER_RATIO_64,i=t+Uf.GOLDEN_RATIO_64&Uf.MAX_ULONG;return[Uf.mixStafford13(t),Uf.mixStafford13(i)]}static rotateLeft(e,t){return e<>Uf.BIGINT_64-t}setSeed(e){this.seed=Uf.upgradeSeedTo128bit(e)}fork(){return new Uf([this.next(),this.next()])}forkPositional(){return new Hf(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=Uf.rotateLeft(e+t&Uf.MAX_ULONG,Uf.BIGINT_17)+e&Uf.MAX_ULONG;return t^=e,this.seed=[Uf.rotateLeft(e,Uf.BIGINT_49)^t^t<Uf.POW2_63&&(e-=Uf.POW2_60),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n>BigInt(64-e)}nextInt(e){let t=this.next()&Uf.MAX_UINT;if(e){const i=BigInt(e);let n=t*i,r=n&Uf.MAX_UINT;if(r>Uf.BIGINT_32;return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*Uf.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Uf.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Wf=Uf;Wf.SILVER_RATIO_64=BigInt("7640891576956012809"),Wf.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Wf.FLOAT_MULTIPLIER=1/Math.pow(2,24),Wf.DOUBLE_MULTIPLIER=11102230246251565e-32,Wf.BIGINT_1=BigInt(1),Wf.BIGINT_17=BigInt(17),Wf.BIGINT_21=BigInt(21),Wf.BIGINT_27=BigInt(27),Wf.BIGINT_28=BigInt(28),Wf.BIGINT_30=BigInt(30),Wf.BIGINT_31=BigInt(31),Wf.BIGINT_32=BigInt(32),Wf.BIGINT_49=BigInt(49),Wf.BIGINT_64=BigInt(64),Wf.STAFFORD_1=BigInt("-4658895280553007687"),Wf.STAFFORD_2=BigInt("-7723592293110705685"),Wf.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),Wf.POW2_60=BigInt("0x10000000000000000"),Wf.POW2_63=BigInt("0x8000000000000000"),Wf.MAX_UINT=BigInt(4294967295);class Hf{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=Rf(e,t,i)^this.seedLo;return new Wf([n,this.seedHi])}fromHashOf(e){const t=Ym(e,{asBytes:!0}),i=$f(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=$f(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Wf([i^this.seedLo,n^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const qf=class{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample2D(e,t){let i,n,r;const o=(e+t)*qf.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*qf.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+qf.G2,d=r-l+qf.G2,h=s-1+2*qf.G2,p=r-1+2*qf.G2,m=255&a,f=255&n,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,i){const n=.3333333333333333*(e+t+i),r=Math.floor(e+n),o=Math.floor(t+n),a=Math.floor(i+n),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=i-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample(e,t,i,n=0,r=0){const o=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==n){const e=r>=0&&r=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return Df(a/512,s/512,r)/128}}var Jf;(Jf||(Jf={})).fromJson=function(e){var t,i,n,r,o;const a=null!=(t=nf.readObject(e))?t:{};return{xzScale:null!=(i=nf.readNumber(a.xz_scale))?i:1,yScale:null!=(n=nf.readNumber(a.y_scale))?n:1,xzFactor:null!=(r=nf.readNumber(a.xz_factor))?r:80,yFactor:null!=(o=nf.readNumber(a.y_factor))?o:80}};const Yf=class{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new Kf(e,t,i),this.second=new Kf(e,t,i);let n=1/0,r=-1/0;for(let a=0;a{var t;return null!=(t=nf.readNumber(e))?t:0})))?n:[]}},(tg||(tg={})).rotate=function(e,t,i){let{up:n,down:r,north:o,east:a,south:s,west:c}=e;switch(i){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[n,o,r,s]=[o,r,s,n];break;case 180:[n,o,r,s]=[r,s,n,o];break;case 270:[n,o,r,s]=[s,n,o,r]}return{up:n,down:r,north:o,east:a,south:s,west:c}};const ig=class{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{compute:t=>t[e]}}static fromJson(e){var t;const i=null!=(t=nf.readObject(e))?t:{};return new ig(jf.fromJson(i.offset,this.EXTRACTOR),jf.fromJson(i.factor,this.EXTRACTOR),jf.fromJson(i.jaggedness,this.EXTRACTOR))}offset(e){return this.offsetSampler.compute(e)+ig.GLOBAL_OFFSET}factor(e){return this.factorSampler.compute(e)}jaggedness(e){return this.jaggednessSampler.compute(e)}static point(e,t,i){return{continents:e,erosion:t,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}};let ng=ig;var rg,og,ag,sg,cg,lg,ug;ng.GLOBAL_OFFSET=-.50375,ng.EXTRACTOR=e=>{var t;const i=null!=(t=nf.readString(e))?t:"continents";return ig.extractor(i)},ng.CONTINENTS=ig.extractor("continents"),ng.EROSION=ig.extractor("erosion"),ng.WEIRDNESS=ig.extractor("weirdness"),ng.RIDGES=ig.extractor("ridges"),function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o;const a=null!=(t=nf.readObject(e))?t:{};return{minY:null!=(i=nf.readInt(a.min_y))?i:0,height:null!=(n=nf.readInt(a.height))?n:256,xzSize:null!=(r=nf.readInt(a.size_horizontal))?r:1,ySize:null!=(o=nf.readInt(a.size_vertical))?o:1,sampling:Jf.fromJson(a.sampling),topSlide:og.fromJson(a.top_slide),bottomSlide:og.fromJson(a.bottom_slide),terrainShaper:ng.fromJson(a.terrain_shaper)}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))},e.applySlides=function(i,n,r){const o=Math.floor(r/t(i))-e.minCellY(i);return n=og.apply(i.topSlide,n,e.cellCountY(i)-o),og.apply(i.bottomSlide,n,o)}}(rg||(rg={})),(ag=og||(og={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=nf.readObject(e))?t:{};return{target:null!=(i=nf.readNumber(o.target))?i:0,size:null!=(n=nf.readInt(o.size))?n:0,offset:null!=(r=nf.readInt(o.offset))?r:0}},ag.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return Df(e.target,t,n)},function(e){function t(e){const t=new kf(cf.create(e));return kf.REGISTRY.register(t.key,t),t}e.NOISE=t("worldgen/noise"),e.DENSITY_FUNCTION=t("worldgen/density_function")}(sg||(sg={}));class dg{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}!function(e){e.context=function(e,t,i){return{x:e,y:t,z:i}};class t extends e{constructor(e){super(),this.input=e}compute(e){return this.transform(e,this.input.compute(e))}}const i=xf.parser(sg.NOISE,Qf.fromJson);e.fromJson=function e(t,n=e){var c,_,w,O,R,$,j,I,P,z,U,W,H,q,V,G,K,X,J;if("string"==typeof t)return new o(xf.reference(sg.DENSITY_FUNCTION,cf.parse(t)));if("number"==typeof t)return new r(t);const Y=null!=(c=nf.readObject(t))?c:{},Z=null==(_=nf.readString(Y.type))?void 0:_.replace(/^minecraft:/,"");switch(Z){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new s;case"flat_cache":return new l(n(Y.argument));case"interpolated":return new p(n(Y.argument));case"cache_2d":return new d(n(Y.argument));case"cache_once":return new h(n(Y.argument));case"cache_all_in_cell":return new u(n(Y.argument));case"noise":return new m(null!=(w=nf.readNumber(Y.xz_scale))?w:1,null!=(O=nf.readNumber(Y.y_scale))?O:1,i(Y.noise));case"end_islands":return new f;case"weird_scaled_sampler":return new b(n(Y.input),nf.readEnum(Y.rarity_value_mapper,g),i(Y.noise));case"shifted_noise":return new v(n(Y.shift_x),n(Y.shift_y),n(Y.shift_z),null!=(R=nf.readNumber(Y.xz_scale))?R:1,null!=($=nf.readNumber(Y.y_scale))?$:1,i(Y.noise));case"range_choice":return new y(n(Y.input),null!=(j=nf.readNumber(Y.min_inclusive))?j:0,null!=(I=nf.readNumber(Y.max_exclusive))?I:1,n(Y.when_in_range),n(Y.when_out_of_range));case"shift_a":return new x(i(Y.argument));case"shift_b":return new N(i(Y.argument));case"shift":return new k(i(Y.argument));case"blend_density":return new A(n(Y.argument));case"clamp":return new C(n(Y.input),null!=(P=nf.readNumber(Y.min))?P:0,null!=(z=nf.readNumber(Y.max))?z:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new S(Z,n(Y.argument));case"slide":return new E(n(Y.argument));case"add":case"mul":case"min":case"max":return new D(nf.readEnum(Z,F),n(Y.argument1),n(Y.argument2));case"spline":return new B(jf.fromJson(Y.spline,n),null!=(U=nf.readNumber(Y.min_value))?U:0,null!=(W=nf.readNumber(Y.max_value))?W:1);case"terrain_shaper_spline":return new M(n(Y.continentalness),n(Y.erosion),n(Y.weirdness),nf.readEnum(Y.spline,L),null!=(H=nf.readNumber(Y.min_value))?H:0,null!=(q=nf.readNumber(Y.max_value))?q:1);case"constant":return new r(null!=(V=nf.readNumber(Y.argument))?V:0);case"y_clamped_gradient":return new T(null!=(G=nf.readInt(Y.from_y))?G:-4064,null!=(K=nf.readInt(Y.to_y))?K:4062,null!=(X=nf.readNumber(Y.from_value))?X:-4064,null!=(J=nf.readNumber(Y.to_value))?J:4062)}return r.ZERO};const n=class extends e{constructor(e){super(),this.value=e}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=n;r.ZERO=new n(0),r.ONE=new n(1),e.Constant=r;class o extends e{constructor(e){super(),this.holder=e}compute(e){return this.holder.value().compute(e)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=o;class a extends e.Constant{constructor(e,t,i){super(e),this.min=t,this.max=i}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=a;class s extends e{constructor(e){super(),this.blendedNoise=null!=e?e:new Xf(Wf.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(e){return this.blendedNoise.sample(e.x,e.y,e.z)}maxValue(){return this.blendedNoise.maxValue}}e.OldBlendedNoise=s;class c extends e{constructor(e){super(),this.wrapped=e}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class l extends c{constructor(e){super(e),this.lastValue=0}compute(t){const i=t.x>>2,n=t.z>>2;return this.lastQuartX===i&&this.lastQuartZ===n||(this.lastValue=this.wrapped.compute(e.context(i<<2,0,n<<2)),this.lastQuartX=i,this.lastQuartZ=n),this.lastValue}mapAll(e){return e.map(new l(this.wrapped.mapAll(e)))}}e.FlatCache=l;class u extends c{constructor(e){super(e)}compute(e){return this.wrapped.compute(e)}mapAll(e){return e.map(new u(this.wrapped.mapAll(e)))}}e.CacheAllInCell=u;class d extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.z;return this.lastBlockX===t&&this.lastBlockZ===i||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockZ=i),this.lastValue}mapAll(e){return e.map(new d(this.wrapped.mapAll(e)))}}e.Cache2D=d;class h extends c{constructor(e){super(e),this.lastValue=0}compute(e){const t=e.x,i=e.y,n=e.z;return this.lastBlockX===t&&this.lastBlockY===i&&this.lastBlockZ===n||(this.lastValue=this.wrapped.compute(e),this.lastBlockX=t,this.lastBlockY=i,this.lastBlockZ=n),this.lastValue}mapAll(e){return e.map(new h(this.wrapped.mapAll(e)))}}e.CacheOnce=h;class p extends c{constructor(e,t=4,i=4){super(e),this.cellWidth=t,this.cellHeight=i,this.values=new Map}compute({x:e,y:t,z:i}){const n=this.cellWidth,r=this.cellHeight,o=(e%n+n)%n/n,a=(t%r+r)%r/r,s=(i%n+n)%n/n,c=Math.floor(e/n)*n,l=Math.floor(t/r)*r,u=Math.floor(i/n)*n;return function(e,t,i,n,r,o,a,s,c,l,u){return Ef(i,(()=>Ff(e,t,n,r,o,a)),(()=>Ff(e,t,s,c,l,u)))}(o,a,s,(()=>this.computeCorner(c,l,u)),(()=>this.computeCorner(c+n,l,u)),(()=>this.computeCorner(c,l+r,u)),(()=>this.computeCorner(c+n,l+r,u)),(()=>this.computeCorner(c,l,u+n)),(()=>this.computeCorner(c+n,l,u+n)),(()=>this.computeCorner(c,l+r,u+n)),(()=>this.computeCorner(c+n,l+r,u+n)))}computeCorner(t,i,n){return af(this.values,`${t} ${i} ${n}`,(()=>this.wrapped.compute(e.context(t,i,n))))}mapAll(e){return e.map(new p(this.wrapped.mapAll(e)))}withCellSize(e,t){return new p(this.wrapped,e,t)}}e.Interpolated=p;class m extends e{constructor(e,t,i,n){super(),this.xzScale=e,this.yScale=t,this.noiseData=i,this.noise=n}compute(e){var t,i;return null!=(i=null==(t=this.noise)?void 0:t.sample(e.x*this.xzScale,e.y*this.yScale,e.z*this.xzScale))?i:0}maxValue(){var e,t;return null!=(t=null==(e=this.noise)?void 0:e.maxValue)?t:2}}e.Noise=m;class f extends e{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=["type_1","type_2"],_=class extends t{constructor(e,t,i,n){super(e),this.rarityValueMapper=t,this.noiseData=i,this.noise=n,this.mapper=_.ValueMapper[this.rarityValueMapper]}transform(e,t){if(!this.noise)return 0;const i=this.mapper(t);return i*Math.abs(this.noise.sample(e.x/i,e.y/i,e.z/i))}mapAll(e){return e.map(new _(this.input.mapAll(e),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return"type_1"===this.rarityValueMapper?2:3}static rarityValueMapper1(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}static rarityValueMapper2(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}};let b=_;b.ValueMapper={type_1:_.rarityValueMapper1,type_2:_.rarityValueMapper2},e.WeirdScaledSampler=b;class v extends m{constructor(e,t,i,n,r,o,a){super(n,r,o,a),this.shiftX=e,this.shiftY=t,this.shiftZ=i}compute(e){var t,i;const n=e.x*this.xzScale+this.shiftX.compute(e),r=e.y*this.yScale+this.shiftY.compute(e),o=e.z*this.xzScale+this.shiftZ.compute(e);return null!=(i=null==(t=this.noise)?void 0:t.sample(n,r,o))?i:0}mapAll(e){return e.map(new v(this.shiftX.mapAll(e),this.shiftY.mapAll(e),this.shiftZ.mapAll(e),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=v;class y extends e{constructor(e,t,i,n,r){super(),this.input=e,this.minInclusive=t,this.maxExclusive=i,this.whenInRange=n,this.whenOutOfRange=r}compute(e){const t=this.input.compute(e);return this.minInclusive<=t&&tMath.abs(e),square:e=>e*e,cube:e=>e*e*e,half_negative:e=>e>0?e:.5*e,quarter_negative:e=>e>0?e:.25*e,squeeze:e=>{const t=Cf(e,-1,1);return t/2-t*t*t/24}},e.Mapped=S;class E extends t{constructor(e,t){super(e),this.settings=t}transform(e,t){return this.settings?rg.applySlides(this.settings,t,e.y):t}mapAll(e){return e.map(new E(this.input.mapAll(e),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}e.Slide=E;const F=["add","mul","min","max"];class D extends e{constructor(e,t,i,n,r){super(),this.type=e,this.argument1=t,this.argument2=i,this.min=n,this.max=r}compute(e){const t=this.argument1.compute(e);switch(this.type){case"add":return t+this.argument2.compute(e);case"mul":return 0===t?0:t*this.argument2.compute(e);case"min":return tthis.argument2.maxValue()?t:Math.max(t,this.argument2.compute(e))}}mapAll(e){return e.map(new D(this.type,this.argument1.mapAll(e),this.argument2.mapAll(e)))}minValue(){var e;return null!=(e=this.min)?e:-1/0}maxValue(){var e;return null!=(e=this.max)?e:1/0}withMinMax(){const e=this.argument1.minValue(),t=this.argument2.minValue(),i=this.argument1.maxValue(),n=this.argument2.maxValue();let r,o;switch("min"!==this.type&&"max"!==this.type||!(e>=n||t>=i)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":r=e+t,o=i+n;break;case"mul":r=e>0&&t>0?e*t||0:i<0&&n<0?i*n||0:Math.min(e*n||0,t*i||0),o=e>0&&t>0?i*n||0:i<0&&n<0?e*t||0:Math.max(e*t||0,i*n||0);break;case"min":r=Math.min(e,t),o=Math.min(i,n);break;case"max":r=Math.max(e,t),o=Math.max(i,n)}return new D(this.type,this.argument1,this.argument2,r,o)}}e.Ap2=D;class B extends e{constructor(e,t,i){super(),this.spline=e,this.min=t,this.max=i}compute(e){return Cf(this.spline.compute(e),this.min,this.max)}mapAll(t){return t.map(new B(this.spline.mapAll((i=>i instanceof e?i.mapAll(t):i)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Spline=B;const L=["offset","factor","jaggedness"];class M extends e{constructor(e,t,i,n,r,o,a){super(),this.continentalness=e,this.erosion=t,this.weirdness=i,this.spline=n,this.min=r,this.max=o,this.shaper=a}compute(e){if(!this.shaper)return 0;const t=ng.point(this.continentalness.compute(e),this.erosion.compute(e),this.weirdness.compute(e));return Cf(this.shaper[this.spline](t),this.min,this.max)}mapAll(e){return e.map(new M(this.continentalness.mapAll(e),this.erosion.mapAll(e),this.weirdness.mapAll(e),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}e.TerrainShaperSpline=M;class T extends e{constructor(e,t,i,n){super(),this.fromY=e,this.toY=t,this.fromValue=i,this.toValue=n}compute(e){return Tf(e.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=T}(dg||(dg={}));class hg{constructor(e,t){this.level=e,this.type=t}at(e){return e0))return e(t,i,n).at(i)}}},function(e){function t(e,t){return"number"==typeof e?new i(e,null!=t?t:e):e}e.target=function(e,t,i,n,o,a){return new r(e,t,i,n,o,a)},e.parameters=function(e,i,r,o,a,s,c){return new n(t(e),t(i),t(r),t(o),t(a),t(s),c)},e.param=t;class i{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,i=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(i,0)}union(e){return new i(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new i(e,e);const[n,r]=null!=(t=nf.readArray(e,(e=>nf.readNumber(e))))?t:[];return new i(null!=n?n:0,null!=r?r:0)}}e.Param=i;class n{constructor(e,t,i,n,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return Af(this.temperature.distance(e.temperature))+Af(this.humidity.distance(e.humidity))+Af(this.continentalness.distance(e.continentalness))+Af(this.erosion.distance(e.erosion))+Af(this.depth.distance(e.depth))+Af(this.weirdness.distance(e.weirdness))+Af(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!=(t=nf.readObject(e))?t:{};return new n(i.fromJson(o.temperature),i.fromJson(o.humidity),i.fromJson(o.continentalness),i.fromJson(o.erosion),i.fromJson(o.depth),i.fromJson(o.weirdness),null!=(r=nf.readInt(o.offset))?r:0)}}e.ParamPoint=n;class r{constructor(e,t,i,n,r,o){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new a(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}},e.Sampler=class{constructor(e,t,i,n,r,o){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o}static fromRouter(t){return new e.Sampler(t.temperature,t.vegetation,t.continents,t.erosion,t.depth,t.ridges)}sample(t,i,n){const r=dg.context(t<<2,i<<2,n<<2);return e.target(this.temperature.compute(r),this.humidity.compute(r),this.continentalness.compute(r),this.erosion.compute(r),this.depth.compute(r),this.weirdness.compute(r))}};const o=class{constructor(e){this.root=o.build(e.map((([e,t])=>new l(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let i=0;i<7;i+=1){const n=e.space[i];t+=Math.abs((n.min+n.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new c(t)}let t=1/0,i=-1,n=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),n=o.bucketize(e);let a=0;for(const e of n)a+=o.area(e.space);t>a&&(t=a,i=r)}return e=o.sort(e,i,!1),n=o.bucketize(e),n=o.sort(n,i,!0),new c(n.map((e=>o.build(e.children))))}static sort(e,t,i){return e.map((e=>{const n=e.space[t],r=(n.min+n.max)/2;return{key:i?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let i=[];const n=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)i.push(r),i.lengthnew i(1/0,-1/0)));for(const i of e)t=[...Array(7)].map(((e,n)=>t[n].union(i.space[n])));return t}search(e,t){let i=1/0,n=null;for(const r of this.children){const o=t(r,e);if(i<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);i<=s||(i=s,n=a)}return n}}e.RSubTree=c;class l extends s{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=l}(lg||(lg={}));class pg{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!=(t=nf.readObject(e))?t:{},r=cf.parse(null!=(i=nf.readString(n.biome))?i:"minecraft:the_void");return new pg(r)}}!function(e){function t(e,t,i){return sg.NOISE.register(cf.create(e),Qf.create(t,i))}e.TEMPERATURE=t("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=t("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=t("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=t("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=t("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=t("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=t("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=t("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=t("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=t("offset",-3,[1,1,1,0]),e.AQUIFER_BARRIER=t("aquifer_barrier",-3,[1]),e.AQUIFER_FLUID_LEVEL_FLOODEDNESS=t("aquifer_fluid_level_floodedness",-7,[1]),e.AQUIFER_FLUID_LEVEL_SPREAD=t("aquifer_fluid_level_spread",-5,[1]),e.AQUIFER_LAVA=t("aquifer_lava",-1,[1]),e.PILLAR=t("pillar",-7,[1,1]),e.PILLAR_RARENESS=t("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=t("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=t("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=t("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=t("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=t("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=t("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=t("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=t("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=t("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=t("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=t("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=t("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=t("cave_layer",-8,[1]),e.CAVE_CHEESE=t("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=t("noodle",-8,[1]),e.NOODLE_THICKNESS=t("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=t("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=t("noodle_ridge_b",-7,[1]),e.JAGGED=t("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=t("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=t("surface_secondary",-6,[1,1,0,1]);const i=new Map;e.instantiate=function(e,t){var n;const r=null==(n=t.key())?void 0:n.toString();if(!r)throw new Error("Cannot instantiate noise from direct holder");const o=e.seedKey(),a=i.get(r);if(a&&a[0]===o[0]&&a[1]===o[1])return a[2];const s=new Zf(e.fromHashOf(r),t.value());return i.set(r,[o[0],o[1],s]),s}}(ug||(ug={}));var mg,fg,gg,_g,bg,vg,yg,wg=Object.defineProperty,xg=Object.defineProperties,Ng=Object.getOwnPropertyDescriptors,kg=Object.getOwnPropertySymbols,Ag=Object.prototype.hasOwnProperty,Cg=Object.prototype.propertyIsEnumerable,Og=(e,t,i)=>t in e?wg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Sg=(e,t)=>{for(var i in t||(t={}))Ag.call(t,i)&&Og(e,i,t[i]);if(kg)for(var i of kg(t))Cg.call(t,i)&&Og(e,i,t[i]);return e};!function(e){const t=e=>xf.parser(sg.DENSITY_FUNCTION,dg.fromJson)(e).value();e.fromJson=function(e){var i;const n=null!=(i=nf.readObject(e))?i:{};return{barrier:t(n.barrier),fluidLevelFloodedness:t(n.fluid_level_floodedness),fluidLevelSpread:t(n.fluid_level_spread),lava:t(n.lava),temperature:t(n.temperature),vegetation:t(n.vegetation),continents:t(n.continents),erosion:t(n.erosion),depth:t(n.depth),ridges:t(n.ridges),initialDensityWithoutJaggedness:t(n.initial_density_without_jaggedness),finalDensity:t(n.final_density),veinToggle:t(n.vein_toggle),veinRidged:t(n.vein_ridged),veinGap:t(n.vein_gap)}},e.create=function(e){return Sg({barrier:dg.Constant.ZERO,fluidLevelFloodedness:dg.Constant.ZERO,fluidLevelSpread:dg.Constant.ZERO,lava:dg.Constant.ZERO,temperature:dg.Constant.ZERO,vegetation:dg.Constant.ZERO,continents:dg.Constant.ZERO,erosion:dg.Constant.ZERO,depth:dg.Constant.ZERO,ridges:dg.Constant.ZERO,initialDensityWithoutJaggedness:dg.Constant.ZERO,finalDensity:dg.Constant.ZERO,veinToggle:dg.Constant.ZERO,veinRidged:dg.Constant.ZERO,veinGap:dg.Constant.ZERO},e)},e.withSettings=function(e,t,n,r=!1){const o=(r?new Pf(n):Wf.create(n)).forkPositional(),a=new i(o,t);return s=Sg({},a.mapAll(e)),c={aquiferPositionalRandomFactory:o.fromHashOf(cf.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(cf.create("ore").toString()).forkPositional()},xg(s,Ng(c));var s,c};class i{constructor(e,t){this.random=e,this.settings=t,this.mapped=new Map}map(e){if(e instanceof dg.HolderHolder){const t=e.holder.key();if(void 0!==t&&this.mapped.has(t.toString()))return this.mapped.get(t.toString());{const i=e.holder.value().mapAll(this);return void 0!==t&&this.mapped.set(t.toString(),i),i}}if(e instanceof dg.Interpolated)return e.withCellSize(rg.cellWidth(this.settings),rg.cellHeight(this.settings));if(e instanceof dg.Noise)return new dg.Noise(e.xzScale,e.yScale,e.noiseData,ug.instantiate(this.random,e.noiseData));if(e instanceof dg.ShiftNoise)return e.withNewNoise(ug.instantiate(this.random,e.noiseData));if(e instanceof dg.ShiftedNoise){const t=ug.instantiate(this.random,e.noiseData);return new dg.ShiftedNoise(e.shiftX,e.shiftY,e.shiftZ,e.xzScale,e.yScale,e.noiseData,t)}return e instanceof dg.WeirdScaledSampler?new dg.WeirdScaledSampler(e.input,e.rarityValueMapper,e.noiseData,ug.instantiate(this.random,e.noiseData)):e instanceof dg.OldBlendedNoise?new dg.OldBlendedNoise(new Xf(this.random.fromHashOf(cf.create("terrain").toString()),this.settings.sampling,rg.cellWidth(this.settings),rg.cellHeight(this.settings))):e instanceof dg.Mapped||e instanceof dg.Ap2?e.withMinMax():e instanceof dg.TerrainShaperSpline?new dg.TerrainShaperSpline(e.continentalness,e.erosion,e.weirdness,e.spline,e.min,e.max,this.settings.terrainShaper):e instanceof dg.Slide?new dg.Slide(e.input,this.settings):e}mapAll(e){return{barrier:e.barrier.mapAll(this),fluidLevelFloodedness:e.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:e.fluidLevelSpread.mapAll(this),lava:e.lava.mapAll(this),temperature:e.temperature.mapAll(this),vegetation:e.vegetation.mapAll(this),continents:e.continents.mapAll(this),erosion:e.erosion.mapAll(this),depth:e.depth.mapAll(this),ridges:e.ridges.mapAll(this),initialDensityWithoutJaggedness:e.initialDensityWithoutJaggedness.mapAll(this),finalDensity:e.finalDensity.mapAll(this),veinToggle:e.veinToggle.mapAll(this),veinRidged:e.veinRidged.mapAll(this),veinGap:e.veinGap.mapAll(this)}}}e.Visitor=i,e.computePreliminarySurfaceLevelScanning=function(e,t,i,n){const r=rg.minCellY(e)+rg.cellCountY(e),o=rg.minCellY(e),a=rg.cellHeight(e);for(let s=r;s>=o;s-=1){const r=s*a,o=Cf(t.compute(dg.context(i,r,n)),-64,64);if(rg.applySlides(e,o,r)>=.390625)return r}return Number.MAX_SAFE_INTEGER}}(mg||(mg={}));class Eg{constructor(e,t,i,n,r,o,a,s,c){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=i,this.router=n,this.minX=r,this.minZ=o,this.settings=a,this.preliminarySurfaceLevel=new Map,this.cellWidth=rg.cellWidth(a),this.cellHeight=rg.cellHeight(a),this.firstCellX=Math.floor(r/this.cellWidth),this.firstCellZ=Math.floor(o/this.cellWidth),this.firstNoiseX=r>>2,this.firstNoiseZ=o>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=cg.createDisabled(c);const l=this.router.finalDensity;this.materialRule=fg.fromList([e=>this.aquifer.compute(e,l.compute(e))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,i){return this.materialRule({x:e,y:t,z:i})}getPreliminarySurfaceLevel(e,t){return af(this.preliminarySurfaceLevel,wf.asLong(e,t),(()=>mg.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2)))}getAquifer(){return this.aquifer}}(fg||(fg={})).fromList=function(e){return t=>{for(const i of e){const e=i(t);if(e)return e}}},(gg||(gg={})).fromJson=function(e){var t,i,n,r;const o=null!=(t=nf.readObject(e))?t:{};return void 0!==o.absolute?(s=null!=(i=nf.readNumber(o.absolute))?i:0,()=>s):void 0!==o.above_bottom?(a=null!=(n=nf.readNumber(o.above_bottom))?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!=(r=nf.readNumber(o.below_top))?r:0):()=>0;var a,s},(_g||(_g={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class Fg{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=Wf.create(i).forkPositional(),this.surfaceNoise=ug.instantiate(this.random,ug.SURFACE),this.surfaceSecondaryNoise=ug.instantiate(this.random,ug.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=wf.minBlockX(e.pos),o=wf.minBlockZ(e.pos),a=new Dg(this,e,t,i,n),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let i=0;i<1;i+=1){const n=o+i;a.updateXZ(t,n);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let i=e.maxY;i>=e.minY;i-=1){const o=Qm.create(t,i,n),u=e.getBlockState(o);if(u.equals(_f.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=i+1);continue}if(l>=i){l=Number.MIN_SAFE_INTEGER;for(let r=i-1;r>=e.minY;r-=1){const i=e.getBlockState(Qm.create(t,r,n));if(i.equals(_f.AIR)||i.isFluid()){l=r+1;break}}}r+=1;const d=i-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,i);const h=s(t,i,n);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return af(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class Dg{constructor(e,t,i,n,r){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=n,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=of((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=of((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=of((()=>this.getBiome(Qm.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const i=e>>4,n=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n+1<<4);return Math.floor(Sf((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function i(e){return t=>{const i=e.map((e=>e(t)));return(e,t,n)=>{for(const r of i){const i=r(e,t,n);if(i)return i}}}}function n(e,t){return i=>(n,r,o)=>{if(e(i))return t(i)(n,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!=(o=nf.readObject(r))?o:{};switch(null==(a=nf.readString(c.type))?void 0:a.replace(/^minecraft:/,"")){case"block":return t(_f.fromJson(c.result_state));case"sequence":return i(null!=(s=nf.readArray(c.sequence,e.fromJson))?s:[]);case"condition":return n(vg.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(bg||(bg={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function i(e){return t=>!e(t)}function n(e,t,i,n){return r=>{const o=n?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===i?0:Mf(r.surfaceSecondary(),-1,1,0,i);return o<=1+e+a+s}}function r(e,t,i){return n=>{const r=t(n.context),o=i(n.context);if(n.blockY<=r)return!0;if(n.blockY>=o)return!1;const a=n.system.getRandom(e),s=Mf(n.blockY,r,o,1,0);return a.nextFloat(){if(n.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=i?n.stoneDepthAbove:0;return n.blockY+r>=n.waterHeight+e+n.surfaceDepth*t}}function a(e,t,i){return n=>{const r=i?n.stoneDepthAbove:0;return n.blockY+r>=e(n.context)+n.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!=(c=nf.readObject(s))?c:{};switch(null==(l=nf.readString(y.type))?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!=(u=nf.readArray(y.biome_is,(e=>{var t;return null!=(t=nf.readString(e))?t:""})))?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!=(d=nf.readInt(y.offset))?d:0,null!=(h=nf.readBoolean(y.add_surface_depth))&&h,null!=(p=nf.readInt(y.secondary_depth_range))?p:0,"ceiling"===nf.readString(y.surface_type));case"vertical_gradient":return r(null!=(m=nf.readString(y.random_name))?m:"",gg.fromJson(y.true_at_and_below),gg.fromJson(y.false_at_and_above));case"water":return o(null!=(f=nf.readInt(y.offset))?f:0,null!=(g=nf.readInt(y.surface_depth_multiplier))?g:0,null!=(_=nf.readBoolean(y.add_surface_depth))&&_);case"y_above":return a(gg.fromJson(y.anchor),null!=(b=nf.readInt(y.surface_depth_multiplier))?b:0,null!=(v=nf.readBoolean(y.add_surface_depth))&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=i,e.stoneDepth=n,e.verticalGradient=r,e.water=o,e.yAbove=a}(vg||(vg={}));class Bg{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.router=mg.withSettings(i.noiseRouter,i.noise,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new Fg(i.surfaceRule,i.defaultBlock,e);const n=new hg(-54,_f.LAVA),r=new hg(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(e,t,o)=>t=0;s-=1)for(let l=a-1;l>=0;l-=1){const m=(c+s)*a+l,f=15&m,g=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==g&&(r=e.getOrCreateSection(g));for(let e=0;et))}getNoiseChunk(e){return af(this.noiseChunkCache,wf.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=rg.cellWidth(this.settings.noise),r=rg.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=wf.minBlockX(e.pos),l=wf.minBlockZ(e.pos);return new Eg(o,s,a,this.router,c,l,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}let Lg;(yg||(yg={})).fromJson=function(e){var t,i,n,r,o,a;const s=null!=(t=nf.readObject(e))?t:{};return{surfaceRule:bg.fromJson(s.surface_rule),noise:rg.fromJson(s.noise),defaultBlock:_f.fromJson(s.default_block),defaultFluid:_f.fromJson(s.default_fluid),noiseRouter:mg.fromJson(s.noise_router),seaLevel:null!=(i=nf.readInt(s.sea_level))?i:0,disableMobGeneration:null!=(n=nf.readBoolean(s.disable_mob_generation))&&n,aquifersEnabled:null!=(r=nf.readBoolean(s.aquifers_enabled))&&r,oreVeinsEnabled:null!=(o=nf.readBoolean(s.ore_veins_enabled))&&o,legacyRandomSource:null!=(a=nf.readBoolean(s.legacy_random_source))&&a}};let Mg=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Mg.decode();let Tg=null;function Rg(e,t){return Mg.decode((null!==Tg&&Tg.buffer===Lg.memory.buffer||(Tg=new Uint8Array(Lg.memory.buffer)),Tg).subarray(e,e+t))}const $g=new Uint32Array(2),jg=new BigInt64Array($g.buffer);let Ig=null;function Pg(){return null!==Ig&&Ig.buffer===Lg.memory.buffer||(Ig=new Int32Array(Lg.memory.buffer)),Ig}let zg=null;function Ug(){return null!==zg&&zg.buffer===Lg.memory.buffer||(zg=new Float64Array(Lg.memory.buffer)),zg}let Wg=0;function Hg(e,t){const i=t(8*e.length);return Ug().set(e,i/8),Wg=e.length,i}let qg=null;function Vg(e,t){const i=t(4*e.length);return(null!==qg&&qg.buffer===Lg.memory.buffer||(qg=new Uint32Array(Lg.memory.buffer)),qg).set(e,i/4),Wg=e.length,i}function Gg(e,t,i,n,r,o,a,s,c,l,u,d,h,p){var m=Hg(e,Lg.__wbindgen_malloc),f=Wg,g=Hg(t,Lg.__wbindgen_malloc),_=Wg,b=Hg(i,Lg.__wbindgen_malloc),v=Wg,y=Hg(n,Lg.__wbindgen_malloc),w=Wg,x=Hg(r,Lg.__wbindgen_malloc),N=Wg,k=Hg(o,Lg.__wbindgen_malloc),A=Wg,C=Hg(a,Lg.__wbindgen_malloc),O=Wg,S=Hg(s,Lg.__wbindgen_malloc),E=Wg,F=Hg(c,Lg.__wbindgen_malloc),D=Wg,B=Hg(l,Lg.__wbindgen_malloc),L=Wg,M=Hg(u,Lg.__wbindgen_malloc),T=Wg,R=Hg(d,Lg.__wbindgen_malloc),$=Wg,j=Hg(h,Lg.__wbindgen_malloc),I=Wg,P=Vg(p,Lg.__wbindgen_malloc),z=Wg,U=Lg.biome_parameters(m,f,g,_,b,v,y,w,x,N,k,A,C,O,S,E,F,D,B,L,M,T,R,$,j,I,P,z);return Zg.__wrap(U)}function Kg(e,t,i,n,r,o,a,s,c,l,u,d,h){jg[0]=e;const p=$g[0],m=$g[1];var f=Hg(i,Lg.__wbindgen_malloc),g=Wg,_=Hg(r,Lg.__wbindgen_malloc),b=Wg,v=Hg(a,Lg.__wbindgen_malloc),y=Wg,w=Hg(c,Lg.__wbindgen_malloc),x=Wg,N=Hg(u,Lg.__wbindgen_malloc),k=Wg,A=Hg(h,Lg.__wbindgen_malloc),C=Wg,O=Lg.climate_sampler(p,m,t,f,g,n,_,b,o,v,y,s,w,x,l,N,k,d,A,C);return Qg.__wrap(O)}function Xg(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function Jg(e,t,i,n,r,o,a,s,c,l,u){try{const m=Lg.__wbindgen_add_to_stack_pointer(-16);Xg(e,Zg),Xg(t,Qg),Lg.multi_noise(m,e.ptr,t.ptr,i,n,r,o,a,s,c,l,u);var d=Pg()[m/4+0],h=Pg()[m/4+1],p=function(e,t){return Pg().subarray(e/4,e/4+t)}(d,h).slice();return Lg.__wbindgen_free(d,4*h),p}finally{Lg.__wbindgen_add_to_stack_pointer(16)}}function Yg(e,t,i,n,r,o,a,s,c,l){try{const p=Lg.__wbindgen_add_to_stack_pointer(-16);Xg(e,Qg),Lg.climate_noise(p,e.ptr,t,i,n,r,o,a,s,c,l);var u=Pg()[p/4+0],d=Pg()[p/4+1],h=function(e,t){return Ug().subarray(e/8,e/8+t)}(u,d).slice();return Lg.__wbindgen_free(u,8*d),h}finally{Lg.__wbindgen_add_to_stack_pointer(16)}}class Zg{static __wrap(e){const t=Object.create(Zg.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Lg.__wbg_parameterlist_free(e)}}class Qg{static __wrap(e){const t=Object.create(Qg.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Lg.__wbg_sampler_free(e)}}async function e_(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",u.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(Rg(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:i,module:n}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if("application/wasm"==e.headers.get("Content-Type"))throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i)}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{const i=await WebAssembly.instantiate(e,t);return i instanceof WebAssembly.Instance?{instance:i,module:e}:i}}(await e,t);return Lg=i.exports,e_.__wbindgen_wasm_module=n,Lg}var t_,i_="/assets/deepslate_rs_bg.4990c219.wasm";!function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"}(t_||(t_={}));const n_={[t_.UP]:[0,1,0],[t_.DOWN]:[0,-1,0],[t_.NORTH]:[0,0,-1],[t_.EAST]:[1,0,0],[t_.SOUTH]:[0,0,1],[t_.WEST]:[-1,0,0]};var r_,o_,a_,s_,c_,l_,u_,d_,h_,p_,m_,f_,g_,__,b_,v_,y_,w_,x_,N_;function k_(e,t,i){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==i)throw new Error(`Expected ${t} to be of type ${i}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return n_[e]}}(t_||(t_={})),function(e){e.create=function(e,t,i){return[e,t,i]},e.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},e.towards=function(t,i){return e.offset(t,...t_.normal(i))}}(r_||(r_={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,i){var n;const r=null!==(n=t(e))&&void 0!==n?n:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,i(t)])))},e.compose=function(e,t,i){const n=t(e);return n?i(n):void 0}}(o_||(o_={}));class A_{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=k_(e.value,"Name","string"),i=function(e,t){try{return e()}catch(i){return t}}((()=>k_(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:k_(i,t,"string")})),{});return new A_(t,n)}static fromJson(e){var t,i;const n=null!==(t=o_.readObject(e))&&void 0!==t?t:{},r=null!==(i=o_.readString(n.Name))&&void 0!==i?i:"minecraft:stone",o=o_.readMap(n.Properties,(e=>{var t;return null!==(t=o_.readString(e))&&void 0!==t?t:""}));return new A_(r,o)}}function C_(e){let t=null;return()=>(null==t&&(t=e()),t)}function O_(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}function S_(e){return e*e}function E_(e,t,i){return Math.max(t,Math.min(i,e))}function F_(e,t,i){return t+e*(i-t)}function D_(e,t,i,n,r,o){return F_(t,F_(e,i,n),F_(e,r,o))}function B_(e,t,i){return i<0?e:i>1?t:F_(i,e,t)}function L_(e,t,i){return(e-t)/(i-t)}function M_(e){return e*e*e*(e*(6*e-15)+10)}function T_(e,t,i,n,r){return F_(L_(e,t,i),n,r)}function R_(e,t,i){let n=BigInt(3129871*e)^BigInt(i)*BigInt(116129781)^BigInt(t);return n=n*n*BigInt(42317861)+n*BigInt(11),n>>BigInt(16)}function $_(e,t,i,n,r,o,a,s){return BigInt(e)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(a_||(a_={}));class j_{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new j_(this.nextLong())}forkPositional(){return new I_(this.seed)}setSeed(e){this.seed=e^j_.MULTIPLIER&j_.MODULUS_MASK}advance(){this.seed=this.seed*j_.MULTIPLIER+j_.INCREMENT&j_.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(j_.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,i;for(;(t=this.next(31))-(i=t%e)+(e-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^P_.SILVER_RATIO_64,i=t+P_.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[P_.mixStafford13(t),P_.mixStafford13(i)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=P_.upgradeSeedTo128bit(e)}fork(){return new P_([this.next(),this.next()])}forkPositional(){return new z_(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=P_.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[P_.rotateLeft(e,BigInt(49))^t^t<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const i=BigInt(e);let n=t*i,r=n&BigInt(4294967295);if(r>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*P_.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*P_.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}P_.SILVER_RATIO_64=BigInt("7640891576956012809"),P_.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),P_.FLOAT_MULTIPLIER=1/Math.pow(2,24),P_.DOUBLE_MULTIPLIER=11102230246251565e-32;class z_{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=R_(e,t,i)^this.seedLo;return new P_([n,this.seedHi])}fromHashOf(e){const t=Ym(e,{asBytes:!0}),i=$_(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=$_(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new P_([i^this.seedLo,n^this.seedHi])}}class U_{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample2D(e,t){let i,n,r;const o=(e+t)*U_.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*U_.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+U_.G2,d=r-l+U_.G2,h=s-1+2*U_.G2,p=r-1+2*U_.G2,m=255&a,f=255&n,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,i){const n=.3333333333333333*(e+t+i),r=Math.floor(e+n),o=Math.floor(t+n),a=Math.floor(i+n),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=i-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample(e,t,i,n=0,r=0){const o=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==n){const e=r>=0&&r=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return B_(a/512,s/512,r)/128}}(s_||(s_={})).fromJson=function(e){var t,i,n,r,o;const a=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(i=o_.readNumber(a.xz_scale))&&void 0!==i?i:1,yScale:null!==(n=o_.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(r=o_.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=o_.readNumber(a.y_factor))&&void 0!==o?o:80}};class V_{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new H_(e,t,i),this.second=new H_(e,t,i);let n=1/0,r=-1/0;for(let a=0;a{var t;return null!==(t=o_.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}}}(c_||(c_={})),function(e){e.fromJson=function(t,i){var n,r,o,a;if("number"==typeof t)return new G_(t);const s=null!==(n=o_.readObject(t))&&void 0!==n?n:{},c=new K_(i(s.coordinate)),l=null!==(r=o_.readArray(s.points,(e=>{var t;return null!==(t=o_.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new G_(0);for(const u of l){const t=null!==(o=o_.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,i),r=null!==(a=o_.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,r)}return c}}(l_||(l_={}));class G_{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class K_{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}apply(e){const t=this.coordinate.apply(e),i=function(e,t,i){let n=t-e;for(;n>0;){const t=Math.floor(n/2),r=e+t;i(r)?n=t:(e=r+1,n-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(u_||(u_={})).rotate=function(e,t,i){let{up:n,down:r,north:o,east:a,south:s,west:c}=e;switch(i){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[n,o,r,s]=[o,r,s,n];break;case 180:[n,o,r,s]=[r,s,n,o];break;case 270:[n,o,r,s]=[s,n,o,r]}return{up:n,down:r,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new i(e,null!=t?t:e):e}e.target=function(e,t,i,n,o,a){return new r(e,t,i,n,o,a)},e.parameters=function(e,i,r,o,a,s,c){return new n(t(e),t(i),t(r),t(o),t(a),t(s),c)},e.param=t;class i{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,i=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(i,0)}union(e){return new i(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new i(e,e);const[n,r]=null!==(t=o_.readArray(e,(e=>o_.readNumber(e))))&&void 0!==t?t:[];return new i(null!=n?n:0,null!=r?r:0)}}e.Param=i;class n{constructor(e,t,i,n,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return S_(this.temperature.distance(e.temperature))+S_(this.humidity.distance(e.humidity))+S_(this.continentalness.distance(e.continentalness))+S_(this.erosion.distance(e.erosion))+S_(this.depth.distance(e.depth))+S_(this.weirdness.distance(e.weirdness))+S_(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return new n(i.fromJson(o.temperature),i.fromJson(o.humidity),i.fromJson(o.continentalness),i.fromJson(o.erosion),i.fromJson(o.depth),i.fromJson(o.weirdness),null!==(r=o_.readInt(o.offset))&&void 0!==r?r:0)}}e.ParamPoint=n;class r{constructor(e,t,i,n,r,o){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let i=0;i<7;i+=1){const n=e.space[i];t+=Math.abs((n.min+n.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,i=-1,n=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),n=o.bucketize(e);let a=0;for(const e of n)a+=o.area(e.space);t>a&&(t=a,i=r)}return e=o.sort(e,i,!1),n=o.bucketize(e),n=o.sort(n,i,!0),new s(n.map((e=>o.build(e.children))))}static sort(e,t,i){return e.map((e=>{const n=e.space[t],r=(n.min+n.max)/2;return{key:i?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let i=[];const n=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)i.push(r),i.lengthnew i(1/0,-1/0)));for(const i of e)t=[...Array(7)].map(((e,n)=>t[n].union(i.space[n])));return t}search(e,t){let i=1/0,n=null;for(const r of this.children){const o=t(r,e);if(i<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);i<=s||(i=s,n=a)}return n}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(d_||(d_={}));class X_{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!==(t=o_.readObject(e))&&void 0!==t?t:{},r=null!==(i=o_.readString(n.biome))&&void 0!==i?i:"minecraft:the_void";return new X_(r)}}class J_{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const i=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return new J_(l_.fromJson(i.offset,this.EXTRACTOR),l_.fromJson(i.factor,this.EXTRACTOR),l_.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+J_.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,i){return{continents:e,erosion:t,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),n=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),r=new K_(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,i).addPoint(1,n),o=new K_(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new K_(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new J_(r,o,a)}static getErosionFactor(e,t){const i=new K_(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new K_(this.EROSION).addPoint(-.6,i).addPoint(-.5,new K_(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new K_(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(t){const t=new K_(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),i=new K_(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,i).addPoint(.55,i).addPoint(.62,e)}else{const t=new K_(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),r=new K_(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);n.addPoint(.05,r).addPoint(.4,r).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}static buildErosionOffsetSpline(e,t,i,n,r,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(F_(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(F_(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,F_(.5,.5,.5)*n,.5*n,.6*n,.5),h=this.ridgeSpline(e,r*n,t*n,.5*n,.6*n,.5),p=this.ridgeSpline(e,r,r,t,i,.5),m=this.ridgeSpline(e,r,r,t,i,.5),f=new K_(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,t,i,0),_=new K_(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,h).addPoint(.2,p);return a&&_.addPoint(.4,m).addPoint(.45,f).addPoint(.55,f).addPoint(.58,m),_.addPoint(.7,g),_}static buildMountainRidgeSplineWithPoints(e,t){const i=new K_(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new K_(J_.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}J_.GLOBAL_OFFSET=-.50375,J_.EXTRACTOR=e=>{var t;const i=null!==(t=o_.readString(e))&&void 0!==t?t:"continents";return J_.extractor(i)},J_.CONTINENTS=J_.extractor("continents"),J_.EROSION=J_.extractor("erosion"),J_.WEIRDNESS=J_.extractor("weirdness"),J_.RIDGES=J_.extractor("ridges"),(h_||(h_={})).fromList=function(e){return(t,i,n,r)=>{for(const o of e){const e=o(t,i,n,r);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o,a,s,c;const l=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return{minY:null!==(i=o_.readInt(l.min_y))&&void 0!==i?i:0,height:null!==(n=o_.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(r=o_.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=o_.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:s_.fromJson(l.sampling),topSlide:m_.fromJson(l.top_slide),bottomSlide:m_.fromJson(l.bottom_slide),terrainShaper:J_.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=o_.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=o_.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=o_.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(p_||(p_={})),function(e){e.fromJson=function(e){var t,i,n,r;const o=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return{target:null!==(i=o_.readNumber(o.target))&&void 0!==i?i:0,size:null!==(n=o_.readInt(o.size))&&void 0!==n?n:0,offset:null!==(r=o_.readInt(o.offset))&&void 0!==r?r:0}},e.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return B_(e.target,t,n)}}(m_||(m_={}));class Y_{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Y_.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Y_.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const i=Array(t+1);for(let n=0;n>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const e=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let t=0;t<=l;t+=1){const i=this.firstNoiseZ+t;this.noiseData[u][t]=n.noiseData(e,i)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=n.makeBaseNoiseFiller(this,a,s.noodleCavesEnabled)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}getPreliminarySurfaceLevel(e,t){return O_(this.preliminarySurfaceLevel,a_.asLong(e,t),(()=>{const i=e-this.firstNoiseX,n=t-this.firstNoiseZ,r=this.noiseData.length,o=i>=0&&n>=0&&ie.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((i=>i.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,i){return this.baseNoise(e,t,i)}}(f_||(f_={})).create=function(e,t,i){return{offset:e,factor:t,jaggedness:i}},function(e){const t=new Map;function i(e,i,n){const r=Object.assign({name:`minecraft:${e}`},c_.create(i,n));return t.set(e,r),r}e.TEMPERATURE=i("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=i("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=i("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=i("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=i("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=i("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=i("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=i("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=i("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=i("offset",-3,[1,1,1,0]),e.PILLAR=i("pillar",-7,[1,1]),e.PILLAR_RARENESS=i("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=i("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=i("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=i("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=i("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=i("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=i("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=i("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=i("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=i("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=i("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=i("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=i("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=i("cave_layer",-8,[1]),e.CAVE_CHEESE=i("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=i("noodle",-8,[1]),e.NOODLE_THICKNESS=i("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=i("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=i("noodle_ridge_b",-7,[1]),e.JAGGED=i("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=i("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=i("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(e,t){return new V_(e.fromHashOf(t.name),t)}}(g_||(g_={}));class Q_{constructor(e,t,i,n=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(n?new j_(i):P_.create(i)).forkPositional();n?(this.blendedNoise=new q_(new j_(i),e.sampling,p_.cellWidth(e),p_.cellHeight(e)),this.temperatureNoise=new V_(new j_(i),c_.create(-7,[1,1])),this.humidityNoise=new V_(new j_(i+BigInt(1)),c_.create(-7,[1,1])),this.offsetNoise=new V_(new j_(i+BigInt(5)),c_.create(0,[0]))):(this.blendedNoise=new q_(o.fromHashOf("minecraft:terrain"),e.sampling,p_.cellWidth(e),p_.cellHeight(e)),this.temperatureNoise=g_.instantiate(o,r?g_.TEMPERATURE_LARGE:g_.TEMPERATURE),this.humidityNoise=g_.instantiate(o,r?g_.VEGETATION_LARGE:g_.VEGETATION),this.offsetNoise=g_.instantiate(o,g_.SHIFT)),this.continentalnessNoise=g_.instantiate(o,r?g_.CONTINENTALNESS_LARGE:g_.CONTINENTALNESS),this.erosionNoise=g_.instantiate(o,r?g_.EROSION_LARGE:g_.EROSION),this.weirdnessNoise=g_.instantiate(o,g_.RIDGE),this.pillarNoise=g_.instantiate(o,g_.PILLAR),this.pillarRarenessModulator=g_.instantiate(o,g_.PILLAR_RARENESS),this.pillarThicknessModulator=g_.instantiate(o,g_.PILLAR_THICKNESS),this.spaghetti2DNoise=g_.instantiate(o,g_.SPAGHETTI_2D),this.spaghetti2DElevationModulator=g_.instantiate(o,g_.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=g_.instantiate(o,g_.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=g_.instantiate(o,g_.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=g_.instantiate(o,g_.SPAGHETTI_3D_1),this.spaghetti3DNoise2=g_.instantiate(o,g_.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=g_.instantiate(o,g_.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=g_.instantiate(o,g_.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=g_.instantiate(o,g_.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=g_.instantiate(o,g_.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=g_.instantiate(o,g_.CAVE_ENTRANCE),this.layerNoise=g_.instantiate(o,g_.CAVE_LAYER),this.cheeseNoise=g_.instantiate(o,g_.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(g_.instantiate(o,g_.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(g_.instantiate(o,g_.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(g_.instantiate(o,g_.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(g_.instantiate(o,g_.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=g_.instantiate(o,g_.JAGGED),this.shaper=e.terrainShaper,this.baseNoise=e=>e.createNoiseInterpolator(((t,i,n)=>this.calculateBlendedBaseNoise(t,i,n,e.getNoiseData(t>>2,n>>2).terrainInfo)))}yLimitedInterpolatable(e,t,i,n,r){const o=(o,a,s)=>a>i||ae.createNoiseInterpolator(o)}noiseData(e,t){const i=e+this.getOffset(e,0,t),n=t+this.getOffset(t,e,0),r=this.getContinentalness(i,n),o=this.getErosion(i,n),a=this.getWeirdness(i,n),s=this.terrainInfo(r,o,a);return __.create(i,n,r,o,a,s)}sample(e,t,i){return this.target(e,t,i,this.noiseData(e,i))}target(e,t,i,n){const r=n.shiftedX,o=t+this.getOffset(t,i,e),a=n.shiftedZ,s=this.getTemperature(r,o,a),c=this.getHumidity(r,o,a),l=this.computeDimensionDensity(t<<2,n.terrainInfo);return d_.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,i){const n=J_.point(e,t,i),r=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return f_.create(r,o,a)}getOffset(e,t,i){return 4*this.offsetNoise.sample(e,t,i)}getTemperature(e,t,i){return this.temperatureNoise.sample(e,t,i)}getHumidity(e,t,i){return this.humidityNoise.sample(e,t,i)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t,i){const n=this.baseNoise(e),r=i?this.noodleToggleNoise(e):()=>-1,o=i?this.noodleThicknessNoise(e):()=>0,a=i?this.noodleRidgeANoise(e):()=>0,s=i?this.noodleRidgeBNoise(e):()=>0;return(e,i,c)=>{let l=n();if(l=E_(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,i,n,r){return B_(n,r,L_(e,t,i))}(o(),-1,1,.05,.1),t=Math.abs(1.5*a())-e,i=Math.abs(1.5*s())-e;l=Math.min(l,Math.max(t,i))}return l+=t(e,i,c),l>0?null:A_.AIR}}calculateBlendedBaseNoise(e,t,i,n){const r=this.blendedNoise.sample(e,t,i);return this.calculateBaseNoise(e,t,i,n,r,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(e,t,i,n,r,o,a){if(!this.settings.islandNoiseOverride){const o=a?this.sampleJaggedNoise(n.jaggedness,e,i):0,s=this.computeDimensionDensity(t,n),c=n.factor*(o+s);r+=c>0?4*c:c}let s=-64,c=64;if(!o&&r>=-64){const n=r-1.5625,o=this.getBigEntrances(e,t,i),a=this.getSpaghettiRoughness(e,t,i),l=this.getSpaghetti3D(e,t,i),u=Math.min(o,l+a);if(n<0)c=u;else{const o=this.getLayerizedCaverns(e,t,i);r=o>64?64:this.getCheese(e,t,i)+o+B_(.5,0,1.28*n);const l=this.getSpaghetti2D(e,t,i);s=this.getPillars(e,t,i),c=Math.min(u,l+a)}}return r=E_(r,s,c),E_(r=this.applySlide(r,t/p_.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(e,t,i){if(0===e)return 0;const n=this.jaggedNoise.sample(1500*t,0,1500*i);return n>0?e*n:e/2*n}computeDimensionDensity(e,t){return 1-e/128+t.offset}getBigEntrances(e,t,i){return this.bigEntranceNoise.sample(.75*e,.5*t,.75*i)+.37+B_(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,i){const n=this.spaghettiRoughnessNoise.sample(e,t,i),r=T_(this.spaghettiRoughnessModulator.sample(e,t,i),-1,1,0,1);return(.4-Math.abs(n))*r}getSpaghetti2D(e,t,i){const n=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*e,t,2*i)),r=T_(this.spaghetti2DThicknessModulator.sample(2*e,t,2*i),-1,1,.6,1.3),o=this.sampleWithRarity(this.spaghetti2DNoise,e,t,i,n),a=Math.abs(n*o)-.083*r,s=p_.minCellY(this.settings),c=T_(this.spaghetti2DElevationModulator.sample(e,0,i),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return E_(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,i){const n=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*i)),r=T_(this.spaghetti3DThicknessModulator.sample(e,t,i),-1,1,.065,.088),o=this.sampleWithRarity(this.spaghetti3DNoise1,e,t,i,n),a=Math.abs(n*o)-r,s=this.sampleWithRarity(this.spaghetti3DNoise2,e,t,i,n),c=Math.abs(n*s)-r;return E_(Math.max(a,c),-1,1)}quantizeSpaghettiRarity2D(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}quantizeSpaghettiRarity3D(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}sampleWithRarity(e,t,i,n,r){return e.sample(t/r,i/r,n/r)}getLayerizedCaverns(e,t,i){return 4*S_(this.layerNoise.sample(e,8*t,i))}getCheese(e,t,i){return E_(this.cheeseNoise.sample(e,t/1.5,i)+.27,-1,1)}getPillars(e,t,i){const n=T_(this.pillarRarenessModulator.sample(e,t,i),-1,1,0,2),r=T_(this.pillarThicknessModulator.sample(e,t,i),-1,1,0,1.1),o=this.pillarNoise.sample(25*e,.3*t,25*i),a=Math.pow(r,3)*(2*o-n);return a<=.03?Number.MIN_SAFE_INTEGER:a}applySlide(e,t){const i=t-p_.minCellY(this.settings);return e=m_.apply(this.settings.topSlide,e,p_.cellCountY(this.settings)-i),m_.apply(this.settings.bottomSlide,e,i)}getPreliminarySurfaceLevel(e,t,i){const n=p_.minCellY(this.settings)+p_.cellCountY(this.settings),r=p_.minCellY(this.settings),o=p_.cellHeight(this.settings);for(let a=n;a>=r;a-=1){const n=a*o;if(this.calculateBaseNoise(e,n,t,i,-.703125,!0,!1)>=.390625)return n}return Number.MAX_SAFE_INTEGER}}(__||(__={})).create=function(e,t,i,n,r,o){return{shiftedX:e,shiftedZ:t,continentalness:i,weirdness:n,erosion:r,terrainInfo:o}},(b_||(b_={})).fromJson=function(e){var t,i,n,r;const o=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(i=o_.readNumber(o.absolute))&&void 0!==i?i:0,()=>s):void 0!==o.above_bottom?(a=null!==(n=o_.readNumber(o.above_bottom))&&void 0!==n?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!==(r=o_.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(v_||(v_={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class eb{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=P_.create(i).forkPositional(),this.surfaceNoise=g_.instantiate(this.random,g_.SURFACE),this.surfaceSecondaryNoise=g_.instantiate(this.random,g_.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=a_.minBlockX(e.pos),o=a_.minBlockZ(e.pos),a=new tb(this,e,t,i,n),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let i=0;i<1;i+=1){const n=o+i;a.updateXZ(t,n);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let i=e.maxY;i>=e.minY;i-=1){const o=r_.create(t,i,n),u=e.getBlockState(o);if(u.equals(A_.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=i+1);continue}if(l>=i){l=Number.MIN_SAFE_INTEGER;for(let r=i-1;r>=e.minY;r-=1){const i=e.getBlockState(r_.create(t,r,n));if(i.equals(A_.AIR)||i.isFluid()){l=r+1;break}}}r+=1;const d=i-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,i);const h=s(t,i,n);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return O_(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class tb{constructor(e,t,i,n,r){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=n,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=C_((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=C_((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=C_((()=>this.getBiome(r_.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const i=e>>4,n=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n+1<<4);return Math.floor(D_((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function i(e){return t=>{const i=e.map((e=>e(t)));return(e,t,n)=>{for(const r of i){const i=r(e,t,n);if(i)return i}}}}function n(e,t){return i=>(n,r,o)=>{if(e(i))return t(i)(n,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!==(o=o_.readObject(r))&&void 0!==o?o:{};switch(null===(a=o_.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(A_.fromJson(c.result_state));case"sequence":return i(null!==(s=o_.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return n(w_.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(y_||(y_={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function i(e){return t=>!e(t)}function n(e,t,i,n){return r=>{const o=n?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===i?0:T_(r.surfaceSecondary(),-1,1,0,i);return o<=1+e+a+s}}function r(e,t,i){return n=>{const r=t(n.context),o=i(n.context);if(n.blockY<=r)return!0;if(n.blockY>=o)return!1;const a=n.system.getRandom(e),s=T_(n.blockY,r,o,1,0);return a.nextFloat(){if(n.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=i?n.stoneDepthAbove:0;return n.blockY+r>=n.waterHeight+e+n.surfaceDepth*t}}function a(e,t,i){return n=>{const r=i?n.stoneDepthAbove:0;return n.blockY+r>=e(n.context)+n.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!==(c=o_.readObject(s))&&void 0!==c?c:{};switch(null===(l=o_.readString(y.type))||void 0===l?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!==(u=o_.readArray(y.biome_is,(e=>{var t;return null!==(t=o_.readString(e))&&void 0!==t?t:""})))&&void 0!==u?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!==(d=o_.readInt(y.offset))&&void 0!==d?d:0,null!==(h=o_.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=o_.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===o_.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=o_.readString(y.random_name))&&void 0!==m?m:"",b_.fromJson(y.true_at_and_below),b_.fromJson(y.false_at_and_above));case"water":return o(null!==(f=o_.readInt(y.offset))&&void 0!==f?f:0,null!==(g=o_.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=o_.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(b_.fromJson(y.anchor),null!==(b=o_.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=o_.readBoolean(y.add_surface_depth))&&void 0!==v&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=i,e.stoneDepth=n,e.verticalGradient=r,e.water=o,e.yAbove=a}(w_||(w_={}));class ib{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.sampler=new Q_(i.noise,i.noiseCavesEnabled,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=h_.fromList([(e,t,i,n)=>e.updateNoiseAndGenerateBaseState(t,i,n)]),this.surfaceSystem=new eb(i.surfaceRule,i.defaultBlock,e)}fill(e){var t;const i=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=p_.cellWidth(this.settings.noise),o=p_.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(i/o),c=Math.floor((n-i)/o),l=a_.minBlockX(e.pos),u=a_.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h=0;a-=1){d.selectCellYZ(a,i);for(let c=o-1;c>=0;c-=1){const p=(s+a)*o+c,m=15&p,f=e.getSectionIndex(p);e.getSectionIndex(n.minBlockY)!==f&&(n=e.getOrCreateSection(f));const g=c/o;d.updateForY(g);for(let e=0;et))}getNoiseChunk(e){return O_(this.noiseChunkCache,a_.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=p_.cellWidth(this.settings.noise),r=p_.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=a_.minBlockX(e.pos),l=a_.minBlockZ(e.pos);return new Z_(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}(x_||(x_={})).fromJson=function(e){var t,i,n,r,o,a,s,c,l,u,d;const h=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return{structures:N_.fromJson(h.structures),surfaceRule:y_.fromJson(h.surface_rule),noise:p_.fromJson(h.noise),defaultBlock:A_.fromJson(h.default_block),defaultFluid:A_.fromJson(h.default_fluid),bedrockRoofPosition:null!==(i=o_.readInt(h.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(n=o_.readInt(h.bedrock_floor_position))&&void 0!==n?n:0,seaLevel:null!==(r=o_.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=o_.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=o_.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=o_.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=o_.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=o_.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=o_.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=o_.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(N_||(N_={})).fromJson=function(e){var t;const i=null!==(t=o_.readObject(e))&&void 0!==t?t:{};return{stronghold:o_.compose(i.stronghold,o_.readObject,(e=>{var t,i,n;return{distance:null!==(t=o_.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(i=o_.readInt(e.spread))&&void 0!==i?i:0,count:null!==(n=o_.readInt(e.count))&&void 0!==n?n:0}})),structures:o_.readMap(i.structures,(e=>{var t,i,n,r,o;return i=null!==(t=o_.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=o_.readInt(i.spacing))&&void 0!==n?n:0,separation:null!==(r=o_.readInt(i.separation))&&void 0!==r?r:0,salt:null!==(o=o_.readInt(i.salt))&&void 0!==o?o:0}}))}},function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){"string"==typeof e?(2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var i,n,r=function(e,t,i){if("string"==typeof t){var n=s(e,t);if(null!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],a=0,c=t.length;a1&&c(n,"")>-1&&(i=RegExp(this.source,r.replace.call(s(this),"g","")),r.replace.call(e.slice(n.index),i,(function(){for(var e=1;en.index&&this.lastIndex--}return n},a||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))})),ace.define("ace/lib/es5-shim",["require","exports","module"],(function(e,t,i){function n(){}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=h.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(h.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(h.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var r,o,a,s,c,l=Function.prototype.call,u=Array.prototype,d=Object.prototype,h=u.slice,p=l.bind(d.toString),m=l.bind(d.hasOwnProperty);if((c=m(d,"__defineGetter__"))&&(r=l.bind(d.__defineGetter__),o=l.bind(d.__defineSetter__),a=l.bind(d.__lookupGetter__),s=l.bind(d.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(h.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):null==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ts)for(d=l;d--;)this[c+d]=this[s+d];if(o&&e===u)this.length=u,this.push.apply(this,r);else for(this.length=u+o,d=0;d>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=D(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,D(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:d)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(m(e,t)){var i;if(i={enumerable:!0,configurable:!0},c){var n=e.__proto__;e.__proto__=d;var r=a(e,t),o=s(e,t);if(e.__proto__=n,r||o)return r&&(i.get=r),o&&(i.set=o),i}return i.value=e[t],i}}}(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),Object.create)||(g=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=g();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,(i=new n).__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i});function y(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}if(Object.defineProperty){var w=y({}),x="undefined"==typeof document||y(document.createElement("div"));if(!w||!x)var N=Object.defineProperty}if(!Object.defineProperty||N){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(N)try{return N.call(Object,e,t,i)}catch(l){}if(m(i,"value"))if(c&&(a(e,t)||s(e,t))){var n=e.__proto__;e.__proto__=d,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!c)throw new TypeError("getters & setters can not be defined on this javascript engine");m(i,"get")&&r(e,t,i.get),m(i,"set")&&o(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze((function(){}))}catch(L){Object.freeze=(_=Object.freeze,function(e){return"function"==typeof e?e:_(e)})}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var k=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=A.length;for(var O in{toString:null})k=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)m(e,i)&&t.push(i);if(k)for(var n=0,r=C;n0||-1)*Math.floor(Math.abs(e))),e}var B=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}})),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],(function(e,t,i){e("./regexp"),e("./es5-shim")})),ace.define("ace/lib/dom",["require","exports","module"],(function(e,t,i){t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",e):document.createElement(e)},t.hasCssClass=function(e,t){return-1!==(e.className+"").split(/\s+/g).indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var r=i.indexOf(t);if(-1==r)break;n=!1,i.splice(r,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if((t=t||document).createStyleSheet&&(i=t.styleSheets)){for(;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}})),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("./keys"),r=e("./useragent"),o=null,a=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||r.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",(function(e){var t=e.touches[0];n=t.clientX,r=t.clientY})),t.addListener(e,"touchmove",(function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}}))},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",(function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)})):"onwheel"in e?t.addListener(e,"wheel",(function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)})):t.addListener(e,"DOMMouseScroll",(function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)}))},t.addMultiMouseDownListener=function(e,i,n,o){var a,s,c,l=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};function d(e){if(0!==t.getButton(e)?l=0:e.detail>1?++l>4&&(l=1):l=1,r.isIE){var d=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-s)>5;c&&!d||(l=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),1==l&&(a=e.clientX,s=e.clientY)}if(e._clicks=l,n[o]("mousedown",e),l>4)l=0;else if(l>1)return n[o](u[l],e)}function h(e){l=2,c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),n[o]("mousedown",e),n[o](u[l],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){t.addListener(e,"mousedown",d),r.isOldIE&&t.addListener(e,"dblclick",h)}))};var s=r.isMac&&r.isOpera&&!("KeyboardEvent"in window)?function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)}:function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function c(e,t,i){var c=s(t);if(!r.isMac&&o){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(c|=8),o.altGr){if(3==(3&c))return;o.altGr=0}if(18===i||17===i){var l="location"in t?t.location:t.keyLocation;if(17===i&&1===l)1==o[i]&&(a=t.timeStamp);else if(18===i&&3===c&&2===l){t.timeStamp-a<50&&(o.altGr=!0)}}}if((i in n.MODIFIER_KEYS&&(i=-1),8&c&&i>=91&&i<=93&&(i=-1),!c&&13===i)&&(3===(l="location"in t?t.location:t.keyLocation)&&(e(t,c,-i),t.defaultPrevented)))return;if(r.isChromeOS&&8&c){if(e(t,c,i),t.defaultPrevented)return;c&=-9}return!!(c||i in n.FUNCTION_KEYS||i in n.PRINTABLE_KEYS)&&e(t,c,i)}function l(){o=Object.create(null)}if(t.getModifierString=function(e){return n.KEY_MODS[s(e)]},t.addCommandKeyListener=function(e,i){var n=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var a=null;n(e,"keydown",(function(e){a=e.keyCode})),n(e,"keypress",(function(e){return c(i,e,a)}))}else{var s=null;n(e,"keydown",(function(e){o[e.keyCode]=(o[e.keyCode]||0)+1;var t=c(i,e,e.keyCode);return s=e.defaultPrevented,t})),n(e,"keypress",(function(e){s&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),s=null)})),n(e,"keyup",(function(e){o[e.keyCode]=null})),o||(l(),n(window,"focus",l))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-1";t.addListener(i,"message",(function r(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",r),e())})),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/lib/lang",["require","exports","module"],(function(e,t,i){t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;id.length?e=e.substr(9):e.substr(0,4)==d.substr(0,4)?e=e.substr(4,e.length-d.length+1):e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e==d.charAt(0)||e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),h&&(h=!1),k&&(k=!1))},C=function(e){if(!f){var t=i.value;A(t),x()}},O=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!l){var r=u||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return O(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return n.preventDefault(e);O(e,a)?(r.isIOS&&(p=o,i.value="\n aa"+a+"a a\n",i.setSelectionRange(4,4+a.length),h={value:a}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(h=!0,i.value=a,i.select(),setTimeout((function(){h=!1,x(),w(),o?t.onCut():t.onCopy()})))};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),w()):N&&w(t.selection.isEmpty())})),n.addListener(i,"input",C),n.addListener(i,"cut",(function(e){S(e,!0)})),n.addListener(i,"copy",(function(e){S(e,!1)})),n.addListener(i,"paste",(function(e){var o=O(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),n.preventDefault(e)):(i.value="",m=!0)}));var E,F=function(){if(f&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\x01/g,"");if(f.lastValue!==e&&(t.onCompositionUpdate(e),f.lastValue&&t.undo(),f.canUndo&&(f.lastValue=e),f.lastValue)){var n=t.selection.getRange();t.insert(f.lastValue),t.session.markUndoGroup(),f.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},D=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=f;f=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\x01/g,"");f||(e==n.lastValue?x():!n.lastValue&&e&&(x(),A(e)))}));N=function(e){return o&&clearTimeout(o),(e=e.replace(/\x01/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",D),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&C()}},B=a.delayedCall(F,50);function L(){clearTimeout(E),E=setTimeout((function(){g&&(i.style.cssText=g,g=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){f||!t.onCompositionStart||t.$readOnly||((f={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(F,0),t.on("mousedown",D),f.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){B.schedule()})):(n.addListener(i,"keyup",(function(){B.schedule()})),n.addListener(i,"keydown",(function(){B.schedule()}))),n.addListener(i,"compositionend",D),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){k=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){g||(g=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(E),r.isWin&&n.capture(t.container,h,L))},this.onContextMenuClose=L;var M=function(e){t.textInput.onContextMenu(e),L()};if(n.addListener(i,"mouseup",M),n.addListener(i,"mousedown",(function(e){e.preventDefault(),L()})),n.addListener(t.renderer.scroller,"contextmenu",M),n.addListener(i,"contextmenu",M),r.isIOS){var T=null,R=!1;e.addEventListener("keydown",(function(e){T&&clearTimeout(T),R=!0})),e.addEventListener("keyup",(function(e){T=setTimeout((function(){R=!1}),100)}));var $=function(e){if(document.activeElement===i&&!R){if(p)return setTimeout((function(){p=!1}),100);var n=i.selectionStart,r=i.selectionEnd;if(i.setSelectionRange(4,5),n==r)switch(n){case 0:t.onCommandKey(null,0,s.up);break;case 1:t.onCommandKey(null,0,s.home);break;case 2:t.onCommandKey(null,c.option,s.left);break;case 4:t.onCommandKey(null,0,s.left);break;case 5:t.onCommandKey(null,0,s.right);break;case 7:t.onCommandKey(null,c.option,s.right);break;case 8:t.onCommandKey(null,0,s.end);break;case 9:t.onCommandKey(null,0,s.down)}else{switch(r){case 6:t.onCommandKey(null,c.shift,s.right);break;case 7:t.onCommandKey(null,c.shift|c.option,s.right);break;case 8:t.onCommandKey(null,c.shift,s.end);break;case 9:t.onCommandKey(null,c.shift,s.down)}switch(n){case 0:t.onCommandKey(null,c.shift,s.up);break;case 1:t.onCommandKey(null,c.shift,s.home);break;case 2:t.onCommandKey(null,c.shift|c.option,s.left);break;case 3:t.onCommandKey(null,c.shift,s.left)}}}};document.addEventListener("selectionchange",$),t.on("destroy",(function(){document.removeEventListener("selectionchange",$)}))}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=r.isChrome<18,c=r.isIE,l=e("./textinput_ios").TextInput;t.TextInput=function(e,t){if(r.isIOS)return l.call(this,e,t);var i=o.createElement("textarea");i.className="ace_text-input",i.setAttribute("wrap","off"),i.setAttribute("autocorrect","off"),i.setAttribute("autocapitalize","off"),i.setAttribute("spellcheck",!1),i.style.opacity="0",e.insertBefore(i,e.firstChild);var u="\u2028\u2028",d=!1,h=!1,p=!1,m="",f=!0;try{var g=document.activeElement===i}catch(R){}n.addListener(i,"blur",(function(e){t.onBlur(e),g=!1})),n.addListener(i,"focus",(function(e){g=!0,t.onFocus(e),v()})),this.focus=function(){if(m)return i.focus();var e=i.style.top;i.style.position="fixed",i.style.top="0px",i.focus(),setTimeout((function(){i.style.position="","0px"==i.style.top&&(i.style.top=e)}),0)},this.blur=function(){i.blur()},this.isFocused=function(){return g};var _=a.delayedCall((function(){g&&v(f)})),b=a.delayedCall((function(){p||(i.value=u,g&&v())}));function v(e){if(!p){if(p=!0,w)var t=0,n=e?0:i.value.length-1;else t=e?2:1,n=2;try{i.setSelectionRange(t,n)}catch(R){}p=!1}}function y(){p||(i.value=u,r.isWebKit&&b.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=f&&(f=!f,_.schedule())})),y(),g&&t.onFocus();var w=null;this.setInputHandler=function(e){w=e},this.getInputHandler=function(){return w};var x=!1,N=function(e){w&&(e=w(e),w=null),h?(v(),e&&t.onPaste(e),h=!1):e==u.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==u?e=e.substr(2):e.charAt(0)==u.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},k=function(e){if(!p){var t=i.value;N(t),y()}},A=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!s){var r=c||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return A(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);A(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(d=!0,i.value=o,i.select(),setTimeout((function(){d=!1,y(),v(),r?t.onCut():t.onCopy()})))},O=function(e){C(e,!0)},S=function(e){C(e,!1)},E=function(e){var o=A(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(v),n.preventDefault(e)):(i.value="",h=!0)};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;d?d=!1:0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),v()):w&&v(t.selection.isEmpty())})),n.addListener(i,"input",k),n.addListener(i,"cut",O),n.addListener(i,"copy",S),n.addListener(i,"paste",E),"oncut"in i&&"oncopy"in i&&"onpaste"in i||n.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:S(e);break;case 86:E(e);break;case 88:O(e)}}));var F,D=function(){if(p&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\u2028/g,"");if(p.lastValue!==e&&(t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e),p.lastValue)){var n=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},B=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=p;p=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\u2028/g,"");p||(e==n.lastValue?y():!n.lastValue&&e&&(y(),N(e)))}));w=function(e){return o&&clearTimeout(o),(e=e.replace(/\u2028/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",B),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},L=a.delayedCall(D,50);function M(){clearTimeout(F),F=setTimeout((function(){m&&(i.style.cssText=m,m=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){p||!t.onCompositionStart||t.$readOnly||((p={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(D,0),t.on("mousedown",B),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){L.schedule()})):(n.addListener(i,"keyup",(function(){L.schedule()})),n.addListener(i,"keydown",(function(){L.schedule()}))),n.addListener(i,"compositionend",B),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){x=!0,v(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){m||(m=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(F),r.isWin&&n.capture(t.container,h,M))},this.onContextMenuClose=M;var T=function(e){t.textInput.onContextMenu(e),M()};n.addListener(i,"mouseup",T),n.addListener(i,"mousedown",(function(e){e.preventDefault(),M()})),n.addListener(t.renderer.scroller,"contextmenu",T),n.addListener(i,"contextmenu",T)}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){e("../lib/dom"),e("../lib/event");var n=e("../lib/useragent");function r(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(0!==o){var a=r.getSelectionRange().isEmpty();return r.$blockScrolling++,(a||1==o)&&r.selection.moveToPosition(i),r.$blockScrolling--,void(2==o&&(r.textInput.onContextMenu(e.domEvent),n.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||r.isFocused()||(r.focus(),!this.$focusTimout||this.$clickSelection||r.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var a=this.$clickSelection.comparePoint(r.start),s=this.$clickSelection.comparePoint(r.end);if(-1==a&&s<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==s&&a>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==a&&1==s)n=r.end,t=r.start;else{var c=o(this.$clickSelection,n);n=c.cursor,t=c.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e,t,i,n,r=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,i=this.x,n=this.y,Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))),o=Date.now();(r>0||o-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session.getBracketRange(t);n?(n.isEmpty()&&(n.start.column--,n.end.column++),this.setState("select")):(n=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=n,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,a=e.wheelY/r;r<250&&(o=(o+i.vx)/2,a=(a+i.vy)/2);var s=Math.abs(o/a),c=!1;if(s>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(c=!0),s<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(c=!0),c)i.allowed=n;else if(n-i.allowed<250){Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(a)<=1.1*Math.abs(i.vy)?(c=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=a,c?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(r.prototype),t.DefaultHandlers=r})),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}(function(){this.$init=function(){return this.$element=n.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){n.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){n.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(r.prototype),t.Tooltip=r})),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/event"),a=e("../tooltip").Tooltip;function s(e){a.call(this,e)}r.inherits(s,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();(e+=15)+r>i&&(e-=e+r-i),(t+=15)+o>n&&(t-=20+o),a.prototype.setPosition.call(this,e,t)}}.call(s.prototype),t.GutterHandler=function(e){var t,i,r,a=e.editor,c=a.renderer.$gutterLayer,l=new s(a.container);function u(){t&&(t=clearTimeout(t)),r&&(l.hide(),r=null,a._signal("hideGutterTooltip",l),a.removeEventListener("mousewheel",u))}function d(e){l.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(a.isFocused()&&0==t.getButton()&&"foldWidgets"!=c.getRegion(t)){var i=t.getDocumentPosition().row,n=a.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(o){var s=o.domEvent.target||o.domEvent.srcElement;if(n.hasCssClass(s,"ace_fold-widget"))return u();r&&e.$tooltipFollowsMouse&&d(o),i=o,t||(t=setTimeout((function(){t=null,i&&!e.isMousePressed?function(){var t=i.getDocumentPosition().row,n=c.$annotations[t];if(!n)return u();if(t==a.session.getLength()){var o=a.renderer.pixelToScreenCoordinates(0,i.y).row,s=i.$pos;if(o>a.session.documentToScreenRow(s.row,s.column))return u()}if(r!=n)if(r=n.text.join("
"),l.setHtml(r),l.show(),a._signal("showGutterTooltip",l),a.on("mousewheel",u),e.$tooltipFollowsMouse)d(i);else{var h=i.domEvent.target.getBoundingClientRect(),p=l.getElement().style;p.left=h.right+"px",p.top=h.bottom+"px"}}():u()}),50))})),o.addListener(a.renderer.$gutter,"mouseout",(function(e){i=null,r&&!t&&(t=setTimeout((function(){t=null,u()}),50))})),a.on("changeSession",u)}})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/event"),o=e("../lib/useragent");function a(e){var t=e.editor,i=n.createElement("img");i.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",o.isOpera&&(i.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var a,c,l,u,d,h,p,m,f,g,_,b=t.container,v=0;function y(){var e=h;(function(e,i){var n=Date.now(),r=!i||e.row!=i.row,o=!i||e.column!=i.column;!g||r||o?(t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,g=n,_={x:c,y:l}):s(_.x,_.y,c,l)>5?g=null:n-g>=200&&(t.renderer.scrollCursorIntoView(),g=null)})(h=t.renderer.screenToTextCoordinates(c,l),e),function(e,i){var n=Date.now(),r=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,a=t.renderer.scroller.getBoundingClientRect(),s={x:{left:c-a.left,right:a.right-c},y:{top:l-a.top,bottom:a.bottom-l}},u=Math.min(s.x.left,s.x.right),d=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};u/o<=2&&(h.column+=s.x.left=200&&t.renderer.scrollCursorIntoView(h):f=n:f=null}(h,e)}function w(){d=t.selection.toOrientedRange(),a=t.session.addMarker(d,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),y(),u=setInterval(y,20),v=0,r.addListener(document,"mousemove",k)}function x(){clearInterval(u),t.session.removeMarker(a),a=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(d),t.$blockScrolling-=1,t.isFocused()&&!m&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),d=null,h=null,v=0,f=null,g=null,r.removeListener(document,"mousemove",k)}this.onDragStart=function(e){if(this.cancelDrag||!b.draggable){var n=this;return setTimeout((function(){n.startSelect(),n.captureMouse(e)}),0),e.preventDefault()}d=t.getSelectionRange();var r=e.dataTransfer;r.effectAllowed=t.getReadOnly()?"copy":"copyMove",o.isOpera&&(t.container.appendChild(i),i.scrollTop=0),r.setDragImage&&r.setDragImage(i,0,0),o.isOpera&&t.container.removeChild(i),r.clearData(),r.setData("Text",t.session.getTextRange()),m=!0,this.setState("drag")},this.onDragEnd=function(e){if(b.draggable=!1,m=!1,this.setState(null),!t.getReadOnly()){var i=e.dataTransfer.dropEffect;p||"move"!=i||t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&A(e.dataTransfer))return c=e.clientX,l=e.clientY,a||w(),v++,e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&A(e.dataTransfer))return c=e.clientX,l=e.clientY,a||(w(),v++),null!==N&&(N=null),e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragLeave=function(e){if(--v<=0&&a)return x(),p=null,r.preventDefault(e)},this.onDrop=function(e){if(h){var i=e.dataTransfer;if(m)switch(p){case"move":d=d.contains(h.row,h.column)?{start:h,end:h}:t.moveText(d,h);break;case"copy":d=t.moveText(d,h,!0)}else{var n=i.getData("Text");d={start:h,end:t.session.insert(h,n)},t.focus(),p=null}return x(),r.preventDefault(e)}},r.addListener(b,"dragstart",this.onDragStart.bind(e)),r.addListener(b,"dragend",this.onDragEnd.bind(e)),r.addListener(b,"dragenter",this.onDragEnter.bind(e)),r.addListener(b,"dragover",this.onDragOver.bind(e)),r.addListener(b,"dragleave",this.onDragLeave.bind(e)),r.addListener(b,"drop",this.onDrop.bind(e));var N=null;function k(){null==N&&(N=setTimeout((function(){null!=N&&a&&x()}),20))}function A(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function C(e){var t=["copy","copymove","all","uninitialized"],i=o.isMac?e.altKey:e.ctrlKey,n="uninitialized";try{n=e.dataTransfer.effectAllowed.toLowerCase()}catch(a){}var r="none";return i&&t.indexOf(n)>=0?r="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(n)>=0?r="move":t.indexOf(n)>=0&&(r="copy"),r}}function s(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(a.prototype),t.DragdropHandler=a})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,i){var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var a=0;a1&&(r=i[i.length-2]);var a=s[t+"Path"];return null==a?a=s.basePath:"/"==n&&(t=n=""),a&&"/"!=a.slice(-1)&&(a+="/"),a+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,a;Array.isArray(i)&&(a=i[0],i=i[1]);try{o=e(i)}catch(c){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],(function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return s();r.loadScript(t.moduleUrl(i,a),s)}},c(!0),t.init=c})),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,a=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,c=e("./dragdrop_handler").DragdropHandler,l=e("../config"),u=function(e){var t=this;this.editor=e,new o(this),new a(this),new c(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},s=e.renderer.getMouseEventTarget();n.addListener(s,"click",this.onMouseEvent.bind(this,"click")),n.addListener(s,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([s,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var l=e.renderer.$gutter;n.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(s,"mousedown",i),n.addListener(l,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",(function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}}))};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new s(t,this.editor))},this.onMouseWheel=function(e,t){var i=new s(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new s(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,a=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new s(e,o.editor),o.$mouseMoved=!0}},c=function(e){clearInterval(u),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout((function(){c(e)}));o.$onCaptureMouseMove=a,o.releaseMouse=n.capture(this.editor.container,a,c);var u=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(u.prototype),l.defineOptions(u.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=u})),ace.define("ace/mouse/fold_handler",["require","exports","module"],(function(e,t,i){t.FoldHandler=function(e){e.on("click",(function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())})),e.on("gutterclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}})),e.on("gutterdblclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var a=n.getFoldAt(i,n.getLine(i).length,1);a?n.removeFold(a):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}}))}})),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),null==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map((function(i){return i.getStatusText&&i.getStatusText(t,e)||""})).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,a=!1,s=this.$editor.commands,c=this.$handlers.length;c--&&!((o=this.$handlers[c].handleKeyboard(this.$data,e,t,i,n))&&o.command&&((a="null"==o.command||s.exec(o.command,this.$editor,o.args,n))&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),a)););return a||-1!=e||(o={command:"insertstring"},a=s.exec("insertstring",this.$editor,t)),a&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),a},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o})),ace.define("ace/lib/bidiutil",["require","exports","module"],(function(e,t,i){var n=0,r=0,o=!1,a=!1,s=!1,c=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],u=11,d=18,h=[d,d,d,d,d,d,d,d,d,6,5,6,8,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,5,5,5,6,8,4,4,u,u,u,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,d,d,d,d,d,d,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,9,4,u,u,u,u,4,4,4,4,0,4,4,d,4,4,u,u,2,2,4,0,4,4,4,2,0,4,4,4,4,4],p=[8,8,8,8,8,8,8,8,8,8,8,d,d,d,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,u,u,u,u,u,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function m(e,t,i){if(!(r=e){for(o=d+1;o=e;)o++;for(s=d,c=o-1;s=t.length||2!=(c=i[r-1])&&3!=c||2!=(l=t[r+1])&&3!=l?4:(o&&(l=3),l==c?l:4);case 10:return 2==(c=r>0?i[r-1]:5)&&r+10&&2==i[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p=1425&&f<=2303||64286==f;if(c=t[p],g&&(1==c||7==c))return 1}return r<1||5==(c=t[r-1])?4:i[r-1];case 5:return o=!1,a=!0,n;case 6:return s=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case d:return 4}}function g(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?0:h[t]:5==i?/[\u0591-\u05f4]/.test(e)?1:0:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==i&&t<=8287?p[255&t]:254==i&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,u){if(e.length<2)return{};var h=e.split(""),p=new Array(h.length),_=new Array(h.length),b=[];n=u?1:0,function(e,t,i,u){var d=n?l:c,h=null,p=null,m=null,_=0,b=null,v=-1,y=null,w=null,x=[];if(!u)for(y=0,u=[];y0)if(16==b){for(y=v;y-1){for(y=v;y=0&&8==u[N];N--)t[N]=n}}(h,b,h.length,i);for(var v=0;v7&&i[v]<13||4===i[v]||i[v]===d)?b[v]=t.ON_R:v>0&&"ل"===h[v-1]&&/\u0622|\u0623|\u0625|\u0627/.test(h[v])&&(b[v-1]=b[v]=t.R_H,v++);h[h.length-1]===t.DOT&&(b[h.length-1]=t.B);for(v=0;v=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=l&&ri+a/2;){if(i+=a,r===o.length-1){a=0;break}a=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===a&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==a&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s})),ace.define("ace/range",["require","exports","module"],(function(e,t,i){var n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return 1==(t=this.compare(i.row,i.column))?1==(t=this.compare(n.row,n.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(n.row,n.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?a.fromPoints(t,t):this.isBackwards()?a.fromPoints(t,e):a.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new a(n,0,i,this.session.getLine(i).length):new a(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);if(r)this.moveCursorTo(r.end.row,r.end.column);else{if(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length)return this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)}},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),a=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-a)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return a.fromPoints(t,i)}catch(n){return a.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=a.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(s.prototype),t.Selection=s})),ace.define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,i){var n=e("./config"),r=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},a="g",s=[],c=0;c1?this.$applyToken:l.token),d>1&&(/\\\d/.test(l.regex)?u=l.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+r+1)})):(d=1,u=this.removeCapturingGroups(l.regex)),l.splitRegex||"string"==typeof l.token||s.push(l)),o[r]=c,r+=d,n.push(u),l.onMatch||(l.onMatch=null)}}n.length||(o[0]=0,n.push("$")),s.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,a)}),this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",a)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;ru){var _=e.substring(u,g-f.length);h.type==p?h.value+=_:(h.type&&l.push(h),h={type:p,value:_})}for(var b=0;br){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:l,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,i){var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)i+=e[t-=1].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,i){var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),c=["text","paren.rparen","punctuation.operator"],l=["text","paren.rparen","punctuation.operator","comment"],u={},d={'"':'"',"'":"'"},h=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return n=u[t];n=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},m=function(e){this.add("braces","insertion",(function(t,i,r,o,a){var c=r.getCursorPosition(),l=o.doc.getLine(c.row);if("{"==a){h(r);var u=r.getSelectionRange(),d=o.doc.getTextRange(u);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return p(u,d,"{","}");if(m.isSaneInsertion(r,o))return/[\]\}\)]/.test(l[c.column])||r.inMultiSelectMode||e&&e.braces?(m.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==a){if(h(r),"}"==l.substring(c.column,c.column+1))if(null!==o.$findOpeningBracket("}",{column:c.column+1,row:c.row})&&m.isAutoInsertedClosing(c,l,a))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==a||"\r\n"==a){h(r);var f="";if(m.isMaybeInsertedClosing(c,l)&&(f=s.stringRepeat("}",n.maybeInsertedBrackets),m.clearMaybeInsertedClosing()),"}"===l.substring(c.column,c.column+1)){var g=o.findMatchingBracket({row:c.row,column:c.column+1},"}");if(!g)return null;var _=this.$getIndent(o.getLine(g.row))}else{if(!f)return void m.clearMaybeInsertedClosing();_=this.$getIndent(l)}var b=_+o.getTabString();return{text:"\n"+b+"\n"+_+f,selection:[1,b.length,1,b.length]}}m.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,i,r,o){var a=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==a){if(h(i),"}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,i,n,r){if("("==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"(",")");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if(")"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket(")",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o&&(h(i),")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("brackets","insertion",(function(e,t,i,n,r){if("["==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"[","]");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if("]"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket("]",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o&&(h(i),"]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("string_dquotes","insertion",(function(e,t,i,n,r){var o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;h(i);var a=r,s=i.getSelectionRange(),c=n.doc.getTextRange(s);if(!(""===c||1==c.length&&o[c])&&i.getWrapBehavioursEnabled())return p(s,c,a,a);if(!c){var l=i.getCursorPosition(),u=n.doc.getLine(l.row),m=u.substring(l.column-1,l.column),f=u.substring(l.column,l.column+1),g=n.getTokenAt(l.row,l.column),_=n.getTokenAt(l.row,l.column+1);if("\\"==m&&g&&/escape/.test(g.type))return null;var b,v=g&&/string|escape/.test(g.type),y=!_||/string|escape/.test(_.type);if(f==a)(b=v!==y)&&/string\.end/.test(_.type)&&(b=!1);else{if(v&&!y)return null;if(v&&y)return null;var w=n.$mode.tokenRe;w.lastIndex=0;var x=w.test(m);w.lastIndex=0;var N=w.test(m);if(x||N)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;b=!0}return{text:b?a+a:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)&&(h(i),n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o))return r.end.column++,r}))};m.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new a(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",c)){var r=new a(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",c))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",l)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},m.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(m,o),t.CstyleBehaviour=m})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,i){t.packages={},function(e){var i=/\w{4}/g;for(var n in e)t.packages[n]=e[n].replace(i,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})})),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,a=e("../unicode"),s=e("../lib/lang"),c=e("../token_iterator").TokenIterator,l=e("../range").Range,u=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){var r=t.doc,o=!0,a=!0,c=1/0,l=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))f=this.lineCommentStart.map(s.escapeRegExp).join("|"),p=this.lineCommentStart[0];else f=s.escapeRegExp(this.lineCommentStart),p=this.lineCommentStart;f=new RegExp("^(\\s*)(?:"+f+") ?"),u=t.getUseSoftTabs();b=function(e,t){var i=e.match(f);if(i){var n=i[1].length,o=i[0].length;h(e,n,o)||" "!=i[0][o-1]||o--,r.removeInLine(t,n,o)}};var d=p+" ",h=(_=function(e,t){o&&!/\S/.test(e)||(h(e,c,c)?r.insertInLine({row:t,column:c},d):r.insertInLine({row:t,column:c},p))},v=function(e,t){return f.test(e)},function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%l!=0)return!1;for(n=0;" "==e.charAt(i++);)n++;return l>2?n%l!=l-1:n%l==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,m=this.blockComment.end,f=new RegExp("^(\\s*)(?:"+s.escapeRegExp(p)+")"),g=new RegExp("(?:"+s.escapeRegExp(m)+")\\s*$"),_=function(e,t){v(e,t)||o&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},m),r.insertInLine({row:t,column:c},p))},b=function(e,t){var i;(i=e.match(g))&&r.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(f))&&r.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(f.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(w=e.length)})),c==1/0&&(c=w,o=!1,a=!1),u&&c%l!=0&&(c=Math.floor(c/l)*l),y(a?b:_)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o=(f=new c(t,n.row,n.column)).getCurrentToken();t.selection;var a,s,u=t.selection.toOrientedRange();if(o&&/comment/.test(o.type)){for(var d,h;o&&/comment/.test(o.type);){if(-1!=(g=o.value.indexOf(r.start))){var p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;d=new l(p,m,p,m+r.start.length);break}o=f.stepBackward()}var f;for(o=(f=new c(t,n.row,n.column)).getCurrentToken();o&&/comment/.test(o.type);){var g;if(-1!=(g=o.value.indexOf(r.end))){p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;h=new l(p,m,p,m+r.end.length);break}o=f.stepForward()}h&&t.remove(h),d&&(t.remove(d),a=d.start.row,s=-r.start.length)}else s=r.start.length,a=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);u.start.row==a&&(u.start.column+=s),u.end.row==a&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var i=function(t,i,n){var r="insert"==t.action,o=(r?1:-1)*(t.end.row-t.start.row),a=(r?1:-1)*(t.end.column-t.start.column),s=t.start,c=r?s:t.end;if(e(i,s,n))return{row:i.row,column:i.column};if(e(c,i,!n))return{row:i.row+o,column:i.column+(i.row==c.row?a:0)};return{row:s.row,column:s.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)})),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,i){var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new s(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return null==t&&(t=n.length),{row:e,column:t=Math.min(Math.max(t,0),n.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0;(e=Math.min(Math.max(e,0),this.getLength()))0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof a||(e=a.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,a=0,s=0;;){a=s,s+=t-1;var c=i.slice(a,s);if(s>n){e.lines=c,e.start.row=r+a,e.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(r+a,o),end:this.pos(r+s,o=0),action:e.action,lines:c},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang");e("./lib/oop");var r=e("./range").Range,o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var a=o.firstRow,s=o.lastRow,c=a;c<=s;c++){var l=this.cache[c];null==l&&((l=n.getMatchOffsets(i.getLine(c),this.regExp)).length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map((function(e){return new r(c,e.offset,c,e.offset+e.length)})),this.cache[c]=l.length?l:"");for(var u=l.length;u--;)t.drawSingleLineMarker(e,l[u].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o})),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range;function r(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new n(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o=0,a=this.folds,s=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var c=n(e,a.start);return 0===s?t&&0!==c?-o-2:o:c>0||0===c&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){for(var e,t=[],i=this.ranges,r=(i=i.sort((function(e,t){return n(e.start,t.start)})))[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(l.start.row==n&&l.start.column>=t.column&&(l.start.column==t.column&&this.$insertRight||(l.start.column+=o,l.start.row+=r)),l.end.row==n&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&sl.start.column&&l.end.column==a[s+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=r}}}if(0!=r&&s=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){s=e?n-=t-s:n=0);break}a>=e&&(n-=s>=e?a-s:a-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var i,n=this.$foldData,a=!1;e instanceof o?i=e:(i=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(i.range);var s=i.start.row,c=i.start.column,l=i.end.row,u=i.end.column;if(!(s0&&(this.removeFolds(p),p.forEach((function(e){i.addSubFold(e)})));for(var m=0;m0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var i,r;if(null==e?(i=new n(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new n(e,0,e,this.getLine(e).length):"row"in e?n.fromPoints(e,e):e,r=this.getFoldsInRangeList(i),t)this.removeFolds(r);else for(var o=r;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,a="";return e.walk((function(e,t,i,s){if(!(tu)break}while(o&&c.test(o.type));o=r.stepBackward()}else o=r.getCurrentToken();return l.end.row=r.getCurrentTokenRow(),l.end.column=r.getCurrentTokenColumn()+o.value.length-2,l}},this.foldAll=function(e,t,i){null==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength();for(var r=e=e||0;r=e){r=o.end.row;try{var a=this.addFold("...",o);a&&(a.collapseChildren=i)}catch(s){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){this.$foldMode!=e&&(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),e&&"manual"!=this.$foldStyle?(this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)):this.foldWidgets=null)},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var a=this.getFoldWidgetRange(r);if(n||(n=a),a&&a.end.row>=e)break}r--}return{range:-1!==r&&a,firstRange:n}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var a=this.getFoldWidgetRange(e,!0);if(a&&!a.isMultiLine()&&(o=this.getFoldAt(a.start.row,a.start.column,1))&&a.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var c=s.range.start.row+1,l=s.range.end.row;this.foldAll(c,l,t.all?1e4:0)}else t.children?(l=a?a.end.row:this.getLength(),this.foldAll(e+1,l,t.all?1e4:0)):a&&(t.all&&(a.collapseChildren=1e4),this.addFold("...",a));return a}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../token_iterator").TokenIterator,r=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,o=i.charAt(e.column-1),a=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(a||(o=i.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(/([\(\[\{])|([\)\]\}])/),n=!1),!a)return null;if(a[1]){if(!(s=this.$findClosingBracket(a[1],e)))return null;t=r.fromPoints(e,s),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s;if(!(s=this.$findOpeningBracket(a[2],e)))return null;t=r.fromPoints(s,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn()-2,l=s.value;;){for(;c>=0;){var u=l.charAt(c);if(u==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else u==e&&(o+=1);c-=1}do{s=a.stepBackward()}while(s&&!i.test(s.type));if(null==s)break;c=(l=s.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn();;){for(var l=s.value,u=l.length;ci&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))r=/\s/;else r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var a=t;ae&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],a=o?o.start.row:1/0,s=t.length,c=0;ca){if((c=o.end.row+1)>=s)break;a=(o=this.$foldData[r++])?o.start.row:1/0}null==i[c]&&(i[c]=this.$getStringScreenWidth(t[c])[0]),i[c]>n&&(n=i[c])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach((function(e){this.addFolds(e.folds)}),this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=l),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=l)),a&&o.start.row>=e.end.row&&(o.start.row+=a,o.end.row+=a)}if(o.end=this.insert(o.start,n),r.length){var s=e.start,c=o.start,l=(a=c.row-s.row,c.column-s.column);this.addFolds(r.map((function(e){return(e=e.clone()).start.row==s.row&&(e.start.column+=l),e.end.row==s.row&&(e.end.column+=l),e.start.row+=a,e.end.row+=a,e})))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new u(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var a=0;a0){var r;if((r=this.getRowFoldEnd(t+i))>this.doc.getLength()-1)return 0;n=r-t}else{e=this.$clipRowToDocument(e);n=(t=this.$clipRowToDocument(t))-e+1}var o=new u(e,0,t,Number.MAX_VALUE),a=this.getFoldsInRange(o).map((function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e})),s=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,s),a.length&&this.addFolds(a),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,a=r.row,s=a-o,c=null;if(this.$updating=!0,0!=s)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,s);var l=this.$foldData;c=this.getFoldsInRange(e),this.removeFolds(c);var u=0;if(f=this.getFoldLine(r.row)){f.addRemoveChars(r.row,r.column,n.column-r.column),f.shiftRow(-s);var d=this.getFoldLine(o);d&&d!==f&&(d.merge(f),f=d),u=l.indexOf(f)+1}for(;u=r.row&&f.shiftRow(-s)}a=o}else{var h=Array(s);h.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,h);l=this.$foldData,u=0;if(f=this.getFoldLine(o)){var m=f.range.compareInside(n.row,n.column);0==m?(f=f.split(n.row,n.column))&&(f.shiftRow(s),f.addRemoveChars(a,0,r.column-n.column)):-1==m&&(f.addRemoveChars(o,0,r.column-n.column),f.shiftRow(s)),u=l.indexOf(f)+1}for(;u=o&&f.shiftRow(s)}}else s=Math.abs(e.start.column-e.end.column),"remove"===i&&(c=this.getFoldsInRange(e),this.removeFolds(c),s=-s),(f=this.getFoldLine(o))&&f.addRemoveChars(o,n.column,s);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,a):this.$updateRowLengthCache(o,a),c},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(i,n){var r,o,a=this.doc.getAllLines(),s=this.getTabSize(),c=this.$wrapData,l=this.$wrapLimit,u=i;for(n=Math.min(n,a.length-1);u<=n;)(o=this.getFoldLine(u,o))?(r=[],o.walk(function(i,n,o,s){var c;if(null!=i){(c=this.$getDisplayTokens(i,r.length))[0]=e;for(var l=1;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(i,n,r){if(0==i.length)return[];var o=[],a=i.length,s=0,c=0,l=this.$wrapAsCode,u=this.$indentedSoftWrap,d=n<=Math.max(2*r,8)||!1===u?0:Math.floor(n/2);function h(e){var t=i.slice(s,e),n=t.length;t.join("").replace(/12/g,(function(){n-=1})).replace(/2/g,(function(){n-=1})),o.length||(p=function(){var e=0;if(0===d)return e;if(u)for(var t=0;tn-p;){var m=s+n-p;if(i[m-1]>=10&&i[m]>=10)h(m);else if(i[m]!=e&&i[m]!=t){for(var f=Math.max(m-(n-(n>>2)),s-1);m>f&&i[m]f&&i[m]f&&9==i[m];)m--}else for(;m>f&&i[m]<10;)m--;m>f?h(++m):(2==i[m=s+n]&&m--,h(m-p))}else{for(;m!=s-1&&i[m]!=e;m--);if(m>s){h(m);continue}for(m=s+n;m39&&a<48||a>57&&a<64?r.push(9):a>=4352&&i(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var r,o;for(null==t&&(t=1/0),n=n||0,o=0;o=4352&&i(r)?n+=2:n+=1,!(n>t));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0){s=l[u],o=this.$docRowCache[u];var h=e>l[d-1]}else h=!d;for(var p=this.getLength()-1,m=this.getNextFoldLine(o),f=m?m.start.row:1/0;s<=e&&!(s+(c=this.getRowLength(o))>e||o>=p);)s+=c,++o>f&&(o=m.end.row+1,f=(m=this.getNextFoldLine(o,m))?m.start.row:1/0),h&&(this.$docRowCache.push(o),this.$screenRowCache.push(s));if(m&&m.start.row<=o)n=this.getFoldDisplayLine(m),o=m.start.row;else{if(s+c<=e||o>p)return{row:p,column:this.getLine(p).length};n=this.getLine(o),m=null}var g=0,_=Math.floor(e-s);if(this.$useWrapMode){var b=this.$wrapData[o];b&&(r=b[_],_>0&&b.length&&(g=b.indent,a=b[_-1]||b[b.length-1],n=n.substring(a)))}return void 0!==i&&this.$bidiHandler.isBidiRow(s+_,o,_)&&(t=this.$bidiHandler.offsetToCol(i)),a+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&a>=r&&(a=r-1),m?m.idxToPosition(a):{row:o,column:a}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n,r=0,o=null;(n=this.getFoldAt(e,t,1))&&(e=n.start.row,t=n.start.column);var a,s=0,c=this.$docRowCache,l=this.$getRowCacheIndex(c,e),u=c.length;if(u&&l>=0){s=c[l],r=this.$screenRowCache[l];var d=e>c[u-1]}else d=!u;for(var h=this.getNextFoldLine(s),p=h?h.start.row:1/0;s=p){if((a=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(a,h))?h.start.row:1/0}else a=s+1;r+=this.getRowLength(s),s=a,d&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var m="";h&&s>=p?(m=this.getFoldDisplayLine(h,e,t),o=h.start.row):(m=this.getLine(e).substring(0,t),o=e);var f=0;if(this.$useWrapMode){var g=this.$wrapData[o];if(g){for(var _=0;m.length>=g[_];)r++,_++;m=m.substring(g[_-1]||0,m.length),f=_>0?g.indent:0}}return{row:r,column:f+this.$getStringScreenWidth(m)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=(s=0,(t=this.$foldData[s++])?t.start.row:1/0);nr&&(n=t.end.row+1,r=(t=this.$foldData[s++])?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,s=0;si);o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=i}.call(m.prototype),e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),a.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach((function(e,i,r,a){return n=new o(e,i,r,a),!(i==a&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)})),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,r=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),a=[],s=t.re;if(t.$isMultiLine){var c,l=s.length,u=r.length-l;e:for(var d=s.offset||0;d<=u;d++){for(var h=0;hf||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_w&&a[h].end.row==i.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_=s;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=c,s=a.row;i>=s;i--)if(d(i,Number.MAX_VALUE,e))return}};else l=function(e){var i=a.row;if(!d(i,a.column,e)){for(i+=1;i<=c;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=s,c=a.row;i<=c;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var u=i.length,d=function(t,r,o){var a=n?t-u+1:t;if(!(a<0)){var s=e.getLine(a),c=s.search(i[0]);if(!(!n&&cr))return!!o(a,c,a+u-1,d)||void 0}}};else if(n)d=function(t,n,r){var o,a=e.getLine(t),s=[],c=0;for(i.lastIndex=0;o=i.exec(a);){var l=o[0].length;if(c=o.index,!l){if(c>=a.length)break;i.lastIndex=c+=1}if(o.index+l>n)break;s.push(o.index,l)}for(var u=s.length-1;u>=0;u-=2){var d=s[u-1];if(r(t,d,t,d+(l=s[u])))return!0}};else d=function(t,n,r){var o,a=e.getLine(t),s=n;for(i.lastIndex=n;o=i.exec(a);){var c=o[0].length;if(r(t,s=o.index,t,s+c))return!0;if(!c&&(i.lastIndex=s+=1,s>=a.length))return!1}};return{forEach:l}}}).call(a.prototype),t.Search=a})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/useragent"),o=n.KEY_MODS;function a(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){a.call(this,e,t),this.$singleCommand=!1}s.prototype=a.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var a=o.indexOf(e);-1!=a&&(o.splice(a,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(null==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach((function(e){var t=this.parseKeys(e),i=o[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")}),this),n+=" "}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(n+s,t,i)}),this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var a=o[t];for(r=0;rn)break}a.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),i=t.pop(),r=n[i];if(n.FUNCTION_KEYS[r])i=n.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var o=0,a=t.length;a--;){var s=n.KEY_MODS[t[a]];if(null==s)return"undefined"!=typeof console&&console.error("invalid modifier "+t[a]+" in "+e),!1;o|=s}return{key:i,hashId:o}},this.findKeyCommand=function(e,t){var i=o[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=o[t]+i,a=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,a=this.commandKeyBinding[e.$keyChain]||a),!a||"chainKeys"!=a&&"chainKeys"!=a[a.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:a}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(a.prototype),t.HashHandler=a,t.MultiHashHandler=s})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,a=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.command.exec(e.editor,e.args||{})}))};n.inherits(a,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(a.prototype),t.CommandManager=a})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,i){var n=e("../lib/lang"),r=e("../config"),o=e("../range").Range;function a(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(n.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),r=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(i.row).length,s=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),l=i.row+1;l<=r.row+1;l++){var u=n.stringTrimLeft(n.stringTrimRight(e.session.doc.getLine(l)));0!==u.length&&(u=" "+u),c+=u}r.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+s)):(a=e.session.doc.getLine(i.row).length>a?a+1:a,e.selection.moveCursorTo(i.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var a=0;a0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;_.loadModule(["keybinding",e],(function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new p(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new b(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,a=0,s=n.stepBackward();if("<"==s.value)do{s=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"=0);else{do{r=s,s=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new p(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,a=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(a)||n<=o&&/[\w\d]$/.test(a)))if(a=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(a))return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:a})}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){(a=new p.fromPoints(r,r)).end.column+=e.length,this.session.remove(a)}}else{var a=this.getSelectionRange();r=this.session.remove(a),this.clearSelection()}if("\n"==e||"\r\n"==e){var s=i.getLine(r.row);if(r.column>s.search(/\S|$/)){var c=s.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+c)}}this.clearSelection();var l=r.column,u=i.getState(r.row),d=(s=i.getLine(r.row),n.checkOutdent(u,s,e));if(i.insert(r,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new p(r.row,l+o.selection[0],r.row,l+o.selection[1])):this.selection.setSelectionRange(new p(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var h=n.getNextLineIndent(u,s.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},h)}d&&n.autoOutdent(u,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var a=i.getLine(t.end.row);/^\s+$/.test(a)&&(t.end.column=a.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var r=new p(0,0,0,0);for(n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new p(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var a=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,s=o.start+o.value.length-a,c=parseFloat(o.value);c*=Math.pow(10,s),a!==o.end&&ip+1)break;p=m.last}for(u--,s=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(d=u+1);d<=u;)a[d].moveBy(s,0),d++;t||(s=0),c+=s}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(r,0)})):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new b(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var a,s,c=!1,l={},u=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;u=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return null!==(t=this.$search.replace(i,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(r)||this.$search.$options.needle)||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",(function(){n=!0})),a=this.renderer.on("beforeRender",(function(){n&&(t=i.renderer.container.getBoundingClientRect())})),s=this.renderer.on("afterRender",(function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,a=e.layerConfig,s=o.top-a.offset;null!=(n=o.top>=0&&s+t.top<0||!(o.topwindow.innerHeight)&&null)&&(r.style.top=s+"px",r.style.left=o.left+"px",r.style.height=a.lineHeight+"px",r.scrollIntoView(n)),n=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",s),this.renderer.off("beforeRender",a))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(v.prototype),_.defineOptions(v.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=v})),ace.define("ace/undomanager",["require","exports","module"],(function(e,t,i){var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n})),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,a),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ta&&(f=o.end.row+1,a=(o=t.getNextFoldLine(f,o))?o.start.row:1/0),f>r){for(;this.$cells.length>m+1;)p=this.$cells.pop(),this.element.removeChild(p.element);break}(p=this.$cells[++m])||((p={element:null,textNode:null,foldWidget:null}).element=n.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[m]=p);var g="ace_gutter-cell ";if(c[f]&&(g+=c[f]),l[f]&&(g+=l[f]),this.$annotations[f]&&(g+=this.$annotations[f].className),p.element.className!=g&&(p.element.className=g),(b=t.getRowLength(f)*e.lineHeight+"px")!=p.element.style.height&&(p.element.style.height=b),s){var _=s[f];null==_&&(_=s[f]=t.getFoldWidget(f))}if(_){p.foldWidget||(p.foldWidget=n.createElement("span"),p.element.appendChild(p.foldWidget));g="ace_fold-widget ace_"+_;"start"==_&&f==a&&fi.right-t.right?"foldWidgets":void 0}}).call(s.prototype),t.Gutter=s})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,i){var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),a=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,a,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,i,r,o){for(var a=this.session,s=t.start.row,c=t.end.row,l=s,u=0,d=0,h=a.getScreenLastRowColumn(l),p=null,m=new n(l,t.start.column,l,d);l<=c;l++)m.start.row=m.end.row=l,m.start.column=l==s?t.start.column:a.getRowWrapIndent(l),m.end.column=h,u=d,d=h,h=l+1h?4:0)|(l==c?8:0)),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(e,m,p,r,l==c?0:1,o):this.drawSingleLineMarker(e,m,p,r,l==c?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,a,s,c=this.$padding;(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((l=t.clone()).end.row=l.start.row,l.end.column=this.session.getLine(l.start.row).length,this.drawBidiSingleLineMarker(e,l,i+" ace_br1 ace_start",n,null,r)):(o=n.lineHeight,a=this.$getTop(t.start.row,n),s=c+t.start.column*n.characterWidth,e.push("
"));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var l;(l=t.clone()).start.row=l.end.row,l.start.column=0,this.drawBidiSingleLineMarker(e,l,i+" ace_br12",n,null,r)}else{var u=t.end.column*n.characterWidth;o=n.lineHeight,a=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=(t.end.column+(r||0)-t.start.column)*n.characterWidth,c=this.$getTop(t.start.row,n),l=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=this.$getTop(t.start.row,n),c=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(t){e.push("
")}))},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;t.start.row!=t.end.row&&(a+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang");e("../lib/useragent");var a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",a="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",a=" ace_invisible_tab";var s=o.stringRepeat(this.SPACE_CHAR,this.tabSize),c=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else c=s=o.stringRepeat(" ",this.tabSize);this.$tabStrings[" "]=""+s+"",this.$tabStrings["\t"]=""+c+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,a=0,s=e.firstRow;sl&&(s=c.end.row+1,l=(c=this.session.getNextFoldLine(s,c))?c.start.row:1/0),!(s>r);){var u=o[a++];if(u){var d=[];this.$renderLine(d,s,!this.$useLineGroups(),s==l&&c),u.style.height=e.lineHeight*this.session.getRowLength(s)+"px",u.innerHTML=d.join("")}s++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,a=this.session.getNextFoldLine(o),s=a?a.start.row:1/0;o>s&&(o=a.end.row+1,s=(a=this.session.getNextFoldLine(o,a))?a.start.row:1/0),!(o>i);){var c=r.createElement("div"),l=[];if(this.$renderLine(l,o,!1,o==s&&a),c.innerHTML=l.join(""),this.$useLineGroups())c.className="ace_line_group",n.appendChild(c),c.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;c.firstChild;)n.appendChild(c.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),a=o?o.start.row:1/0;r>a&&(r=o.end.row+1,a=(o=this.session.getNextFoldLine(r,o))?o.start.row:1/0),!(r>n);)this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("
"),r++;this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(e,i,n,a,s){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var c=r.session.getScreenTabSize(t+a);return t+=c-1,r.$tabStrings[c]}if(" "==e){var l=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",u=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+u+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")}));if(this.$textToken[i.type])e.push(a);else{var s="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,a=0,s=i[0],c=0,l=0;l=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),c=0,s=i[++a]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,c=this.$renderToken(e,c,u,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){var i=this.session,n=[];var r=i.getTokens(e);return t.walk((function(e,t,o,a,s){null!=e?n.push({type:"fold",value:e}):(s&&(r=i.getTokens(t)),r.length&&function(e,t,i){for(var r=0,o=0;o+e[r].value.lengthi-t&&(a=a.substring(0,i-t)),n.push({type:e[r].type,value:a}),o=t+a.length,r+=1);oi?n.push({type:e[r].type,value:a.substring(0,i-o)}):n.push(e[r]),o+=a.length,r+=1}}(r,a,o))}),t.end.row,this.session.getLine(t.end.row).length),n},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(s.prototype),t.Text=s})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);i=0;for(var r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var a=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(a,o,e,t[i],this.session):(a.left=o.left+"px",a.top=o.top+"px",a.width=e.characterWidth+"px",a.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var s=this.session.getOverwrite();this.$setOverwrite(s),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter,s=32768,c=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(c.prototype);var l=function(e,t){c.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,c),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>s?(this.coeff=s/e,e=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var u=function(e,t){c.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(u,c),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(u.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=u,t.VScrollBar=l,t.HScrollBar=u})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,i){var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame((function(){var e;for(t.pending=!1;e=t.changes;)t.changes=0,t.onRender(e)}),this.window)}}}).call(r.prototype),t.RenderLoop=r})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),a=e("../lib/useragent"),s=e("../lib/event_emitter").EventEmitter,c=0,l=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),c||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",c),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;c=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval((function(){e.checkForSizeChanges()}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===c){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(i){e={width:0,height:0}}var t={height:e.height,width:e.width/c}}else t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/c};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(l.prototype)})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),a=e("./lib/useragent"),s=e("./layer/gutter").Gutter,c=e("./layer/marker").Marker,l=e("./layer/text").Text,u=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var n=this.$textLayer=new l(this.content);this.canvas=n.element,this.$markerFront=new c(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)})),this.scrollBarH.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",(function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,a={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",a),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)n.top=n.left="0";else{var o=this.characterWidth;if(this.$composition){var a=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(a)[0]+2,r+=2}(i-=this.scrollLeft)>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}if(e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender");if(e&this.CHANGE_SCROLL)return e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender");e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),this._signal("afterRender")}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength()*this.lineHeight,r=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-r-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var s=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;n+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,n-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,r+2*this.$padding-t.scrollerWidth+d.right)));var h=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-n+u<0||this.scrollTop>d.top),p=s!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var m,f,g=Math.ceil(l/this.lineHeight)-1,_=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),b=_+g,v=this.lineHeight;_=e.screenToDocumentRow(_,0);var y=e.getFoldLine(_);y&&(_=y.start.row),m=e.documentToScreenRow(_,0),f=e.getRowLength(_)*v,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(b)*v+f,c=this.scrollTop-m*v;var w=0;return this.layerConfig.width!=r&&(w=this.CHANGE_H_SCROLL),(a||p)&&(w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(r=this.$getLongestLine())),this.layerConfig={width:r,padding:this.$padding,firstRow:_,firstRowScreen:m,lastRow:b,lineHeight:v,characterWidth:this.characterWidth,minHeight:l,maxHeight:n,offset:c,gutterOffset:v?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/v)):0,height:this.$size.scrollerHeight},w},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&c+a>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):c+this.$size.scrollerHeight-sr?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),a=Math.round(r);return{row:o,column:a,side:r-a>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){var i=this;if(this.$themeId=e,i._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)a(e);else{var n=e||this.$options.theme.initialValue;o.loadModule(["theme",n],a)}function a(n){if(i.$themeId!=e)return t&&t();if(!n||!n.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(n.cssText,n.cssClass,i.container.ownerDocument),i.theme&&r.removeCssClass(i.container,i.theme.cssClass);var o="padding"in n?n.padding:"padding"in(i.theme||{})?4:i.$padding;i.$padding&&o!=i.$padding&&i.setPadding(o),i.$theme=n.cssClass,i.theme=n,r.addCssClass(i.container,n.cssClass),r.setCssClass(i.container,"ace_dark",n.isDark),i.$size&&(i.$size.width=0,i.$updateSizeAsync()),i._dispatchEvent("themeLoaded",{theme:n}),t&&t()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/net"),o=e("../lib/event_emitter").EventEmitter,a=e("../config");function s(e,t){var i=function(e,t){var i=t.src;r.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(o){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(i),n.getBlob("application/javascript")}}(e,t),n=(window.URL||window.webkitURL).createObjectURL(i);return new Worker(n)}var c=function(t,i,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)r=r||a.moduleUrl(i.id,"worker");else{var c=this.$normalizePath;r=r||c(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach((function(t){l[t]=c(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}this.$worker=s(r,i),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:l,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){n.implement(this,o),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return r.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(i){console.error(i.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var l=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,s=Object.create(o),c=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){c.messageBuffer.push(e),n&&(r?setTimeout(l):l())},this.setEmitSync=function(e){r=e};var l=function(){var e=c.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){c.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],(function(e){for(n=new e[i](s);c.messageBuffer.length;)l()}))};l.prototype=c.prototype,t.UIWorkerClient=l,t.WorkerClient=c,t.createWorker=s})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,i){var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),a=function(e,t,i,n,r,o){var a=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout((function(){a.onCursorChange()}))},this.$pos=i;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)})),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var a=this.others.length-1;a>=0;a--){var s={row:(c=this.others[a]).row,column:c.column+o};this.doc.insertMergedLines(s,e.lines)}else if("remove"===e.action)for(a=this.others.length-1;a>=0;a--){var c;s={row:(c=this.others[a]).row,column:c.column+o};this.doc.remove(new n(s.row,s.column,s.row,s.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new n,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{i=this.getRange();var n=this.isBackwards(),o=i.start.row,a=i.end.row;if(o==a){if(n)var s=i.end,c=i.start;else s=i.start,c=i.end;return this.addRange(r.fromPoints(c,c)),void this.addRange(r.fromPoints(s,s))}var l=[],u=this.getLineRange(o,!0);u.start.column=i.start.column,l.push(u);for(var d=o+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),o=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)b--;if(b>0)for(var v=0;n[v].isEmpty();)v++;for(var y=b;y>=v;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(o.prototype);var h=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",a),e.commands.addCommands(l.defaultCommands),function(e){var t=e.textInput.getElement(),i=!1;function n(t){i&&(e.renderer.setMouseCursor(""),i=!1)}s.addListener(t,"keydown",(function(t){var r=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&r?i||(e.renderer.setMouseCursor("crosshair"),i=!0):i&&n()})),s.addListener(t,"keyup",n),s.addListener(t,"blur",n)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(l.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(l.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,a=1==i||i&&i.$byLines,s=this.session,c=this.selection,l=c.rangeList,u=(r?c:l).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=c._eventRegistry;c._eventRegistry={};var h=new o(s);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(a)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;h.fromOrientedRange(u[p]),h.index=p,this.selection=s.selection=h;var m=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===m||(n=m),h.toOrientedRange(u[p])}h.detach(),this.selection=s.selection=c,this.inVirtualSelectionMode=!1,c._eventRegistry=d,c.mergeOverlappingRanges();var f=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),f&&f.from==f.to&&this.renderer.animateScrolling(f.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;na&&(a=i.column),nu?e.insert(n,c.stringRepeat(" ",o-u)):e.remove(new r(n.row,n.column,n.row,n.column-o+u)),t.start.column=t.end.column=a,t.start.row=t.end.row=n.row,t.cursor=t.end})),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),d=u.start.row,h=u.end.row,p=d==h;if(p){var m,f=this.session.getLength();do{m=this.session.getLine(h)}while(/[=:]/.test(m)&&++h0);d<0&&(d=0),h>=f&&(h=f-1)}var g=this.session.removeFullLines(d,h);g=this.$reAlignText(g,p),this.session.insert({row:d,column:0},g.join("\n")+"\n"),p||(u.start.column=0,u.end.column=g[g.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var i,n,r,o=!0,a=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==i?(i=t[1].length,n=t[2].length,r=t[3].length,t):(i+n+r!=t[1].length+t[2].length+t[3].length&&(a=!1),i!=t[1].length&&(o=!1),i>t[1].length&&(i=t[1].length),nt[3].length&&(r=t[3].length),t):[e]})).map(t?l:o?a?function(e){return e[2]?s(i+n-e[2].length)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:l:function(e){return e[2]?s(i)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function s(e){return c.stringRepeat(" ",e)}function l(e){return e[2]?s(i)+e[2]+s(n-e[2].length+r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(h.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=/\S/,o=e.getLine(t),a=o.search(r);if(-1!=a){for(var s=i||o.length,c=e.getLength(),l=t,u=t;++tl){var h=e.getLine(u).length;return new n(l,s,u,h)}}},this.openingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r+1},s=e.$findClosingBracket(t,a,o);if(s){var c=e.foldWidgets[s.row];return null==c&&(c=e.getFoldWidget(s.row)),"start"==c&&s.row>a.row&&(s.row--,s.column=e.getLine(s.row).length),n.fromPoints(a,s)}},this.closingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r},s=e.$findOpeningBracket(t,a);if(s)return s.column++,a.column--,n.fromPoints(s,a)}}).call(r.prototype)})),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],(function(e,t,i){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}e("./range").Range,function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,a="add"==e.action,s=r+1;s0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var a=r;a<=o;a++){var s=n[a];if(s&&s.el)if(s.hidden)s.el.style.top=-100-(s.pixelHeight||0)+"px";else{s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var c=t.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;s.coverLine||(c+=i.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=c-i.offset+"px";var l=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(l-=t.scrollLeft),s.el.style.left=l+"px",s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=i.width+2*i.padding+"px"),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+"px":s.el.style.right=""}}}}}.call(r.prototype),t.LineWidgets=r})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,i){var n=e("../line_widgets").LineWidgets,r=e("../lib/dom"),o=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new n(i),i.widgetManager.attach(e));var a=e.getCursorPosition(),s=a.row,c=i.widgetManager.getWidgetsAtRow(s).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():s-=t;var l,u=function(e,t,i){var n=e.getAnnotations().sort(o.comparePoints);if(n.length){var r=function(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,a=i(t,e[o]);if(a>0)n=o+1;else{if(!(a<0))return o;r=o-1}}return-(n+1)}(n,{row:t,column:-1},o.comparePoints);r<0&&(r=-r-1),r>=n.length?r=i>0?0:n.length-1:0===r&&i<0&&(r=n.length-1);var a=n[r];if(a&&i){if(a.row===t){do{a=n[r+=i]}while(a&&a.row===t);if(!a)return n.slice()}var s=[];t=a.row;do{s[i<0?"unshift":"push"](a),a=n[r+=i]}while(a&&a.row==t);return s.length&&s}}}(i,s,t);if(u){var d=u[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,l=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var h={row:a.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},p=h.el.appendChild(r.createElement("div")),m=h.el.appendChild(r.createElement("div"));m.className="error_widget_arrow "+l.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
"),p.appendChild(r.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")})),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],(function(e,t,i){e("./lib/fixoldbrowsers");var n=e("./lib/dom"),r=e("./lib/event"),o=e("./editor").Editor,a=e("./edit_session").EditSession,s=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var a="";if(e&&/input|textarea/i.test(e.tagName)){var s=e;a=s.value,e=n.createElement("pre"),s.parentNode.replaceChild(e,s)}else e&&(a=n.getInnerText(e),e.innerHTML="");var l=t.createEditSession(a),u=new o(new c(e));u.setSession(l);var d={document:l,editor:u,onResize:u.resize.bind(u,null)};return s&&(d.textarea=s),r.addListener(window,"resize",d.onResize),u.on("destroy",(function(){r.removeListener(window,"resize",d.onResize),d.editor.container.env=null})),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new s),i},t.EditSession=a,t.UndoManager=s,t.version="1.2.9"})),ace.acequire(["ace/ace"],(function(e){for(var t in e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])}));var nb=window.ace.acequire("ace/ace"),rb={id:"ace/mode/json_worker",src:'"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'};ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,i){var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(a,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r,o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);if(r=o.match(this.foldingStartMarker)){var a=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,a);var s=e.getCommentFoldRange(i,a+r[0].length,1);return s&&!s.isMultiLine()&&(n?s=this.getSectionRange(e,i):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(r=o.match(this.foldingStopMarker))){a=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,a):e.getCommentFoldRange(i,a,-1)}},this.getSectionRange=function(e,t){for(var i=e.getLine(t),n=i.search(/\S/),o=t,a=i.length,s=t+=1,c=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=o)break;if(u.isMultiLine())t=u.end.row;else if(n==l)break}s=t}}return new r(o,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),a=i,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++ia)return new r(a,n,i,t.length)}}.call(a.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new c};n.inherits(u,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);"start"==e&&(t.match(/^.*[\{\(\[]\s*$/)&&(n+=i));return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new l(["ace"],rb,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})),ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,i,n){var r=/^\s*/.exec(n)[0];return i.length<1?i.push(this.next):i[0]="mlString",i.length<2?i.push(r.length):i[1]=r.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,i){return i[1]>=e.length?(this.next="start",i.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};n.inherits(o,r),t.YamlHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,i){var n=e("../../lib/oop"),r=e("./fold_mode").FoldMode,o=e("../../range").Range,a=t.FoldMode=function(){};n.inherits(a,r),function(){this.getFoldWidgetRange=function(e,t,i){var n=this.indentationBlock(e,i);if(n)return n;var r=/\S/,a=e.getLine(i),s=a.search(r);if(-1!=s&&"#"==a[s]){for(var c=a.length,l=e.getLength(),u=i,d=i;++iu){var p=e.getLine(d).length;return new o(u,c,d,p)}}},this.getFoldWidget=function(e,t,i){var n=e.getLine(i),r=n.search(/\S/),o=e.getLine(i+1),a=e.getLine(i-1),s=a.search(/\S/),c=o.search(/\S/);if(-1==r)return e.foldWidgets[i-1]=-1!=s&&s=0;--r){var o=this.leading[r];t.end.offset>=o.start&&(i.unshift(o.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}i.length&&(e.innerComments=i)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var i=this.trailing.length-1;i>=0;--i){var n=this.trailing[i];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var o=r.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,i=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var r=t.leadingComments[n];r.range[1]<=e.start.offset&&(i.unshift(r),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,i}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(i.unshift(o.comment),this.leading.splice(n,1))}return i},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var i=this.findTrailingComments(t),r=this.findLeadingComments(t);r.length>0&&(e.leadingComments=r),i.length>0&&(e.trailingComments=i),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var i="L"===e.type[0]?"Line":"Block",n={type:i,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var r={comment:{type:i,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=i,this.leading.push(r),this.trailing.push(r)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,i){var n,r=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])},function(e,t){function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var o=i(4),a=i(5),s=i(6),c=i(7),l=i(8),u=i(13),d=i(14);function h(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var i=e;t=h(i.namespace)+":"+h(i.name);break;case s.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var p=function(e){function t(t,i,n){return e.call(this,t,i,n)||this}return r(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",i=!0,n=!1,r=!1,a=!1;!this.scanner.eof()&&i&&!n;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(n=";"===s,t+=s,++this.scanner.index,!n)switch(t.length){case 2:r="#"===s;break;case 3:r&&(i=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),r=r&&!a);break;default:i=(i=i&&!(r&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(i&&n&&t.length>2){var c=t.substr(1,t.length-2);r&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):r||a||!d.XHTMLEntities[c]||(t=d.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,i=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==i;)n+="&"===c?this.scanXHTMLEntity(i):c;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var r=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===r&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var i=this.scanner.source[this.scanner.index];if("{"===i||"<"===i)break;++this.scanner.index,t+=i,o.Character.isLineTerminator(i.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===i&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(i,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(r,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),i=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=i;this.expectJSX(":");var r=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(n,r))}else e=i;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var i=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,i))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,i))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,n,i))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var i=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(i,r,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),i=this.nextJSXText();if(i.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),i=[],n=null;if(!t.selfClosing){var r=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:i});i=r.children,n=r.closing}return this.finalize(e,new a.JSXElement(t,i,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=p},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&i.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&i.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(6),r=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=r;var o=function(e,t,i){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=i};t.JSXElement=o;var a=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var d=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=d;var h=function(e,t,i){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=i};t.JSXOpeningElement=h;var p=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=p;var m=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(2),r=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=r;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,i){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=i};t.AssignmentExpression=s;var c=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!0};t.AsyncArrowFunctionExpression=l;var u=function(e,t,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var d=function(e,t,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=d;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var p=function(e,t,i){var r="||"===e||"&&"===e;this.type=r?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=i};t.BinaryExpression=p;var m=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=m;var f=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=f;var g=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=g;var _=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=_;var b=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=b;var v=function(e,t,i){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=i};t.ClassDeclaration=v;var y=function(e,t,i){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=i};t.ClassExpression=y;var w=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=w;var x=function(e,t,i){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=i};t.ConditionalExpression=x;var N=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=N;var k=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=k;var A=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=A;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var O=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=O;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var E=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=E;var F=function(e,t,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=F;var D=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=D;var B=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=B;var L=function(e,t,i){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=i,this.each=!1};t.ForInStatement=L;var M=function(e,t,i){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=i};t.ForOfStatement=M;var T=function(e,t,i,r){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=T;var R=function(e,t,i,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionDeclaration=R;var $=function(e,t,i,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionExpression=$;var j=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=j;var I=function(e,t,i){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=i};t.IfStatement=I;var P=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=P;var z=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=z;var U=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=U;var W=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=W;var H=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=H;var q=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=q;var V=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=V;var G=function(e,t,i,r,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=i,this.kind=r,this.static=o};t.MethodDefinition=G;var K=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=K;var X=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=X;var J=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=J;var Y=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var Z=function(e,t,i,r,o,a){this.type=n.Syntax.Property,this.key=t,this.computed=i,this.value=r,this.kind=e,this.method=o,this.shorthand=a};t.Property=Z;var Q=function(e,t,i,r){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:i,flags:r}};t.RegexLiteral=Q;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var ie=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=ie;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var re=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=re;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=n.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var de=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=de;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var pe=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=pe;var me=function(e,t,i){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=i};t.TryStatement=me;var fe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=fe;var ge=function(e,t,i){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=i};t.UpdateExpression=ge;var _e=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=_e;var be=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ve=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ve;var ye=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ye;var we=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=we},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(10),o=i(11),a=i(7),s=i(12),c=i(2),l=i(13),u="ArrowParameterPlaceHolder",d=function(){function e(e,t,i){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=i,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],i=1;i0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=n,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,i,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal("true"===t.value,i));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(null,i));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(i)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=i,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,i=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),r=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=i,this.finalize(e,new a.AsyncFunctionExpression(null,n.params,r))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),i=this.nextToken();switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(i);e=this.finalize(t,new a.Literal(i.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(i.value));break;case 7:"["===i.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(i);break;default:e=this.throwUnexpectedToken(i)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,i=this.createNode(),n=this.lookahead,r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(3===n.type){var h=n.value;this.nextToken(),c=this.match("["),r=(d=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(i,new a.Identifier(h))}else this.match("*")?this.nextToken():(c=this.match("["),r=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!d&&"get"===n.value&&p)t="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===n.type&&!d&&"set"===n.value&&p)t="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&p)t="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!d)!c&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===n.type)if(h=this.finalize(i,new a.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(i,new a.AssignmentPattern(h,m))}else u=!0,s=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new a.Property(t,r,c,s,l,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],i={value:!1};!this.match("}");)t.push(this.parseObjectProperty(i)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),i=t.value,r=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),i=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],i=[],n=this.parseTemplateHead();for(i.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),i.push(n);return this.finalize(e,new a.TemplateLiteral(i,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:u,params:[],async:!1};else{var t=this.lookahead,i=[];if(this.match("..."))e=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:u,params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:u,params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,i.value,s],l=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&n<=l[l.length-1];){s=c.pop();var u=c.pop();l.pop(),o=c.pop(),r.pop();var d=this.startNode(r[r.length-1]);c.push(this.finalize(d,new a.BinaryExpression(u,o,s)))}c.push(this.nextToken().value),l.push(n),r.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=c.length-1;t=c[h];for(var p=r.pop();h>1;){var m=r.pop(),f=p&&p.lineStart;d=this.startNode(m,f),u=c[h-1],t=this.finalize(d,new a.BinaryExpression(u,c[h-2],t)),h-=2,p=m}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var i=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,n,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var i=0;i")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var m=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var g=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=g}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var _=f.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=r?this.finalize(m,new a.AsyncArrowFunctionExpression(s.params,f,_)):this.finalize(m,new a.ArrowFunctionExpression(s.params,f,_)),this.context.strict=l,this.context.allowStrictDirective=d,this.context.allowYield=h,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var v=(i=this.nextToken()).value,y=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(v,e,y)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var i=[];for(i.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(i))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var i=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var r=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new a.VariableDeclarator(n,r))},e.prototype.parseBindingList=function(e,t){for(var i=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(e,t));return i},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),i=this.nextToken().value;n.assert("let"===i||"const"===i,"Lexical declaration must be either let or const");var r=this.parseBindingList(i,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(r,i))},e.prototype.parseBindingRestElement=function(e,t){var i=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(i,new a.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var i=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new a.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var i,n,r=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;i=this.parseVariableIdentifier();var l=this.finalize(r,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(c),new a.AssignmentPattern(l,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,n=l)}else o=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(r,new a.Property("init",i,o,n,!1,s))},e.prototype.parseObjectPattern=function(e,t){var i=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new a.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var i;return this.match("[")?i=this.parseArrayPattern(e,t):this.match("{")?i=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),i=this.parseVariableIdentifier(t)),i},e.prototype.parsePatternWithDefault=function(e,t){var i=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,n=this.finalize(this.startNode(i),new a.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),i=this.nextToken();return 4===i.type&&"yield"===i.value?this.context.strict?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):3!==i.type?this.context.strict&&4===i.type&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):(this.context.strict||"let"!==i.value||"var"!==e)&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.await)&&3===i.type&&"await"===i.value&&this.tolerateUnexpectedToken(i),this.finalize(t,new a.Identifier(i.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),i=this.parsePattern([],"var");this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):i.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(i,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},i=[];for(i.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(t));return i},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),i=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(t,new a.IfStatement(n,e,i))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var i=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(i,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new a.WhileStatement(i,e))},e.prototype.parseForStatement=function(){var e,t,i,n=null,r=null,s=null,l=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var d=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===h.length&&this.matchKeyword("in")){var p=h[0];p.init&&(p.id.type===c.Syntax.ArrayPattern||p.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var m=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(d=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(m,{inFor:!0}),this.context.allowIn=d,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(h,m)))):(n=this.finalize(n,new a.Identifier(m)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var f=this.lookahead;if(d=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,l=!1;else{if(this.match(",")){for(var g=[n];this.match(",");)this.nextToken(),g.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(f),new a.SequenceExpression(g))}this.expect(";")}}if(void 0===e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var _=this.context.inIteration;this.context.inIteration=!0,i=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=_}return void 0===e?this.finalize(u,new a.ForStatement(n,r,s,i)):l?this.finalize(u,new a.ForInStatement(e,t,i)):this.finalize(u,new a.ForOfStatement(e,t,i))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier();t=i;var n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier(),n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name),t=i}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(i,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var i=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,i))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var i=this.context.inSwitch;this.context.inSwitch=!0;var n=[],r=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(r&&this.throwError(o.Messages.MultipleDefaultsInSwitch),r=!0),n.push(s)}return this.expect("}"),this.context.inSwitch=i,this.finalize(e,new a.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),i=this.parseExpression();if(i.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var n=i,r="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[r]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=u}else s=this.parseStatement();delete this.context.labelSet[r],e=new a.LabeledStatement(n,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(i);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],i=this.parsePattern(t),n={},r=0;r0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();1!==i.params.length?this.tolerateError(o.Messages.BadSetterArity):i.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,i=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(i=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new a.YieldExpression(t,i))},e.prototype.parseClassElement=function(e){var t=this.lookahead,i=this.createNode(),n="",r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,c=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(d=!0,t=this.lookahead,r=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var p=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&p?(n="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&p&&(n="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&p&&(n="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!n&&r&&this.match("(")&&(n="init",s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),c||(u&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(r,"constructor")&&(("method"!==n||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(i,new a.MethodDefinition(r,c,s,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=i,this.finalize(t,new a.ClassDeclaration(n,r,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(i,n,r))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),i=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,i))},e.prototype.parseImportSpecifier=function(){var e,t,i=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(i,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var i=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(i,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),i=t;return this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,i))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var i=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(i))}else this.matchKeyword("class")?(i=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):this.matchContextualKeyword("async")?(i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(i)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){switch(i=void 0,this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null))}else if(this.matchAsyncFunction())i=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=d},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var i=new Error(e);try{throw i}catch(n){Object.create&&Object.defineProperty&&(i=Object.create(n),Object.defineProperty(i,"column",{value:t}))}return i},e.prototype.createError=function(e,t,i,n){var r="Line "+t+": "+n,o=this.constructError(r,i);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,i,n){throw this.createError(e,t,i,n)},e.prototype.tolerateError=function(e,t,i,n){var r=this.createError(e,t,i,n);if(!this.tolerant)throw r;this.recordError(r)},e}();t.ErrorHandler=i},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(4),o=i(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,i,n=[];for(this.trackComment&&(n=[],t=this.index-e,i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(o)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};n.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(i.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:i},n.push(a)),n},e.prototype.skipMultiLineComment=function(){var e,t,i=[];for(this.trackComment&&(i=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};i.push(o)}return i}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},i.push(o)),this.tolerateUnexpectedToken(),i},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(i))++this.index;else if(r.Character.isLineTerminator(i))++this.index,13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===i)if(47===(i=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==i)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===i){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==i||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=1024*(t-55296)+i-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,i=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),i=r.Character.fromCodePoint(t);for(this.index+=i.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),i=e);!this.eof()&&(t=this.codePointAt(this.index),r.Character.isIdentifierPart(t));)i+=e=r.Character.fromCodePoint(t),this.index+=e.length,92===t&&(i=i.substr(0,i.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),i+=e);return i},e.prototype.octalToDecimal=function(e){var t="0"!==e,i=s(e);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=8*i+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(i=8*i+s(this.source[this.index++]))),{code:i,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,i=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===i.length?3:this.isKeyword(i)?4:"null"===i?5:"true"===i||"false"===i?1:3)&&t+i.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,i="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)i+=this.source[this.index++];return 0===i.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(t)||r.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var i="",n=!1;for(r.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return n||0!==i.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,i){var r=parseInt(t||i,16);return r>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(i)}catch(r){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],i=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],r.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(r.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(i)"]"===e&&(i=!1);else{if("/"===e){a=!0;break}"["===e&&(i=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!r.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var i=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;i=55296&&e<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(10),r=i(12),o=i(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var i=this.values[this.paren-1];t="if"===i||"while"===i||"for"===i||"with"===i;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?r-4:r;for(i=0;i>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=ub[e.charCodeAt(i)]<<2|ub[e.charCodeAt(i+1)]>>4,a[s++]=255&t);1===o&&(t=ub[e.charCodeAt(i)]<<10|ub[e.charCodeAt(i+1)]<<4|ub[e.charCodeAt(i+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,i=e.length,n=i%3,r=[],o=16383,a=0,s=i-n;as?s:a+o));1===n?(t=e[i-1],r.push(lb[t>>2]+lb[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],r.push(lb[t>>10]+lb[t>>4&63]+lb[t<<2&63]+"="));return r.join("")}},lb=[],ub=[],db="undefined"!=typeof Uint8Array?Uint8Array:Array,hb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pb=0,mb=hb.length;pb0)throw new Error("Invalid string. Length must be a multiple of 4");var i=e.indexOf("=");return-1===i&&(i=t),[i,i===t?0:4-i%4]}function gb(e,t,i){for(var n,r,o=[],a=t;a>18&63]+lb[r>>12&63]+lb[r>>6&63]+lb[63&r]);return o.join("")}ub["-".charCodeAt(0)]=62,ub["_".charCodeAt(0)]=63;var _b={}; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function bb(e){return Object.prototype.toString.call(e)}_b.read=function(e,t,i,n,r){var o,a,s=8*r-n-1,c=(1<>1,u=-7,d=i?r-1:0,h=i?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=n;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),o-=l}return(p?-1:1)*a*Math.pow(2,o-n)},_b.write=function(e,t,i,n,r,o){var a,s,c,l=8*o-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,m=n?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[i+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[i+p]=255&a,p+=m,a/=256,l-=8);e[i+p-m]|=128*f}, /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -function(e){const t=rg,n=pg,i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const r=2147483647;function o(e){if(e>r)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,n)}function s(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|p(e,t);let i=o(n);const r=i.write(e,t);r!==n&&(i=i.slice(0,r));return i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(q(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return u(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return d(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(q(e,SharedArrayBuffer)||e&&q(e.buffer,SharedArrayBuffer)))return d(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return a.from(i,t,n);const r=function(e){if(a.isBuffer(e)){const t=0|h(e.length),n=o(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||K(e.length)?o(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|h(e))}function u(e){const t=e.length<0?0:0|h(e.length),n=o(t);for(let i=0;i=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|e}function p(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(r)return i?-1:H(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return S(this,t,n);case"utf8":case"utf-8":return N(this,t,n);case"ascii":return C(this,t,n);case"latin1":case"binary":return E(this,t,n);case"base64":return A(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function f(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function g(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),K(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=a.from(t,i)),a.isBuffer(t))return 0===t.length?-1:_(e,t,n,i,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):_(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function _(e,t,n,i,r){let o,a=1,s=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){let i=-1;for(o=n;os&&(n=s-c),o=n;o>=0;o--){let n=!0;for(let i=0;ir&&(i=r):i=r;const o=t.length;let a;for(i>o/2&&(i=o/2),a=0;a>8,r=n%256,o.push(r),o.push(i);return o}(t,e.length-n),e,n,i)}function A(e,n,i){return 0===n&&i===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(n,i))}function N(e,t,n){n=Math.min(e.length,n);const i=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+a<=n){let n,i,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:n=e[r+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(o=c));break;case 3:n=e[r+1],i=e[r+2],128==(192&n)&&128==(192&i)&&(c=(15&t)<<12|(63&n)<<6|63&i,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=e[r+1],i=e[r+2],s=e[r+3],128==(192&n)&&128==(192&i)&&128==(192&s)&&(c=(15&t)<<18|(63&n)<<12|(63&i)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|1023&o),i.push(o),r+=a}return function(e){const t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);let n="",i=0;for(;ii.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(i,r)):Uint8Array.prototype.set.call(i,t,r);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,r)}r+=t.length}return i},a.byteLength=p,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(t+=" ... "),""},i&&(a.prototype[i]=a.prototype.inspect),a.prototype.compare=function(e,t,n,i,r){if(q(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(r>>>=0)-(i>>>=0),s=(n>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(i,r),u=e.slice(t,n);for(let a=0;a>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}const r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":case"latin1":case"binary":return y(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const k=4096;function C(e,t,n){let i="";n=Math.min(e.length,n);for(let r=t;ri)&&(n=i);let r="";for(let o=t;on)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,i,r,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function B(e,t,n,i,r){P(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function L(e,t,n,i,r){P(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function M(e,t,n,i,r,o){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function T(e,t,i,r,o){return t=+t,i>>>=0,o||M(e,0,i,4),n.write(e,t,i,r,23,4),i+4}function R(e,t,i,r,o){return t=+t,i>>>=0,o||M(e,0,i,8),n.write(e,t,i,r,52,8),i+8}a.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e+--t],r=1;for(;t>0&&(r*=256);)i+=this[e+--t]*r;return i},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||U(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(i)+(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||U(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(i)<>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e],r=1,o=0;for(;++o=r&&(i-=Math.pow(2,8*t)),i},a.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||F(e,t,this.length);let i=t,r=1,o=this[e+--i];for(;i>0&&(r*=256);)o+=this[e+--i]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||F(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){e>>>=0,t||F(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||U(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||U(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||F(e,4,this.length),n.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||F(e,4,this.length),n.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||F(e,8,this.length),n.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||F(e,8,this.length),n.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t>>>=0,n>>>=0,!i){D(this,e,t,n,Math.pow(2,8*n)-1,0)}let r=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,!i){D(this,e,t,n,Math.pow(2,8*n)-1,0)}let r=n-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+n},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=J((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=J((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}let r=0,o=1,a=0;for(this[t]=255&e;++r>0)-a&255;return t+n},a.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}let r=n-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=J((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=J((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,n){return T(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return T(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return R(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return R(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,i){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(r=t;r=i+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function P(e,t,n,i,r,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(o+1)}${i}`:`>= -(2${i} ** ${8*(o+1)-1}${i}) and < 2 ** ${8*(o+1)-1}${i}`:`>= ${t}${i} and <= ${n}${i}`,new $.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,n){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||U(t,e.length-(n+1))}(i,r,o)}function z(e,t){if("number"!=typeof e)throw new $.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,n){if(Math.floor(e)!==e)throw z(e,n),new $.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}I("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),I("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),I("ERR_OUT_OF_RANGE",(function(e,t,n){let i=`The value of "${e}" is out of range.`,r=n;return Number.isInteger(n)&&Math.abs(n)>2**32?r=j(String(n)):"bigint"==typeof n&&(r=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(r=j(r)),r+="n"),i+=` It must be ${t}. Received ${r}`,i}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function H(e,t){let n;t=t||1/0;const i=e.length;let r=null;const o=[];for(let a=0;a55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(t-=3)>-1&&o.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function V(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,i){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const i=16*n;for(let r=0;r<16;++r)t[i+r]=e[n]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(ig),ng.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===mg(e)},ng.isBoolean=function(e){return"boolean"==typeof e},ng.isNull=function(e){return null===e},ng.isNullOrUndefined=function(e){return null==e},ng.isNumber=function(e){return"number"==typeof e},ng.isString=function(e){return"string"==typeof e},ng.isSymbol=function(e){return"symbol"==typeof e},ng.isUndefined=function(e){return void 0===e},ng.isRegExp=function(e){return"[object RegExp]"===mg(e)},ng.isObject=function(e){return"object"==typeof e&&null!==e},ng.isDate=function(e){return"[object Date]"===mg(e)},ng.isError=function(e){return"[object Error]"===mg(e)||e instanceof Error},ng.isFunction=function(e){return"function"==typeof e},ng.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},ng.isBuffer=ig.Buffer.isBuffer;const fg=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let gg;const _g=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function bg(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const n=_g(e),i=_g(t);let r=0;return ni&&(t*=fg[n-i-1],e/=10,r=1),e===t?r:e=0;)r++;return r-t}function yg(e,t,n){for(n--;t>>1;r(n,e[t])<0?s=t:a=t+1}let c=i-a;switch(c){case 3:e[a+3]=e[a+2],gg[a+3]=gg[a+2];case 2:e[a+2]=e[a+1],gg[a+2]=gg[a+1];case 1:e[a+1]=e[a],gg[a+1]=gg[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],gg[a+c]=gg[a+c-1],c--}e[a]=n,gg[a]=o}}function xg(e,t,n,i,r,o){let a=0,s=0,c=1;if(o(e,t[n+r])>0){for(s=i-r;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;cs&&(c=s);const i=a;a=r-c,c=r-i}for(a++;a>>1);o(e,t[n+i])>0?a=i+1:c=i}return c}function Ag(e,t,n,i,r,o){let a=0,s=0,c=1;if(o(e,t[n+r])<0){for(s=r+1;cs&&(c=s);const i=a;a=r-c,c=r-i}else{for(s=i-r;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a>>1);o(e,t[n+i])<0?c=i:a=i+1}return c}class Ng{constructor(e,t){this.array=e,this.compare=t;const{length:n}=e;this.length=n,this.minGallop=7,this.tmpStorageLength=n<512?n>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=n<120?5:n<1542?10:n<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||n>=7);if(p)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[p+c]=o[h+c],gg[p+c]=gg[h+c];return o[d]=a[u],void(gg[d]=s[u])}let{minGallop:m}=this;for(;;){let n=0,f=0,g=!1;do{if(r(a[u],o[l])<0){if(o[d]=o[l],gg[d]=gg[l],d--,l--,n++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],gg[d]=s[u],d--,u--,f++,n=0,1==--i){g=!0;break}}while((n|f)=0;c--)o[p+c]=o[h+c],gg[p+c]=gg[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],gg[d]=s[u],d--,u--,1==--i){g=!0;break}if(f=i-xg(o[l],a,0,i,i-1,r),0!==f){for(d-=f,u-=f,i-=f,p=d+1,h=u+1,c=0;c=7||f>=7);if(g)break;m<0&&(m=0),m+=2}if(this.minGallop=m,m<1&&(this.minGallop=1),1===i){for(d-=t,l-=t,p=d+1,h=l+1,c=t-1;c>=0;c--)o[p+c]=o[h+c],gg[p+c]=gg[h+c];o[d]=a[u],gg[d]=s[u]}else{if(0===i)throw new Error("mergeHigh preconditions were not respected");for(h=d-(i-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=vg(e,n,i,t),sl&&(i=l),wg(e,n,n+i,n+s,t),s=i}c.pushRun(n,s),c.mergeRuns(),a-=s,n+=s}while(0!==a);return c.forceMergeRuns(),gg}};const Cg=Object.prototype.hasOwnProperty;const Eg=(e,t)=>Cg.call(e,t),{isObject:Sg,isArray:Og}=ng,Fg="before",Dg="before-all",Bg="after-all",Lg=[Fg,"after-prop","after-colon","after-value","after"],Mg=[Fg,Dg,Bg].map(Symbol.for),Tg=(e,t)=>Symbol.for(e+":"+t),Rg=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),$g=(e,t,n,i,r,o)=>{const a=Tg(r,i);if(!Eg(t,a))return;const s=n===i?a:Tg(r,n);Rg(e,s,t[a]),o&&delete t[a]},Ig=(e,t,n,i,r)=>{Lg.forEach((o=>{$g(e,t,n,i,o,r)}))},jg=(e,t)=>{Mg.forEach((n=>{const i=t[n];i&&Rg(e,n,i)}))};var Pg={SYMBOL_PREFIXES:Lg,PREFIX_BEFORE:Fg,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Dg,PREFIX_AFTER_ALL:Bg,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Tg,define:Rg,copy_comments:Ig,swap_comments:(e,t,n)=>{t!==n&&Lg.forEach((i=>{const r=Tg(i,n);if(!Eg(e,r))return void $g(e,e,n,t,i,!0);const o=e[r];delete e[r],$g(e,e,n,t,i,!0),Rg(e,Tg(i,t),o)}))},assign_non_prop_comments:jg,assign(e,t,n){if(!Sg(e))throw new TypeError("Cannot convert undefined or null to object");if(!Sg(t))return e;if(undefined===n)n=Object.keys(t),jg(e,t);else{if(!Og(n))throw new TypeError("keys must be array or undefined");0===n.length&&jg(e,t)}return((e,t,n)=>(n.forEach((n=>{Eg(t,n)&&(e[n]=t[n],Ig(e,t,n,n))})),e))(e,t,n)}};const{isArray:zg}=ng,{sort:Ug}=kg,{SYMBOL_PREFIXES:Wg,UNDEFINED:Hg,symbol:Vg,copy_comments:Gg,swap_comments:qg}=Pg,Kg=(e,t,n,i,r)=>{Gg(e,t,n+i,n,r)},Xg=(e,t,n,i,r,o)=>{if(r>0){let a=i;for(;a-- >0;)Kg(e,t,n+a,r,o);return}let a=0;for(;a{Wg.forEach((n=>{const i=Vg(n,t);delete e[i]}))};class Yg extends Array{splice(...e){const{length:t}=this,n=super.splice(...e);let[i,r,...o]=e;i<0&&(i+=t),r=1===arguments.length?t-i:Math.min(t-i,r);const{length:a}=o,s=i+r;return Xg(this,this,s,t-s,a-r,!0),n}slice(...e){const{length:t}=this,n=super.slice(...e);if(!n.length)return new Yg;let[i,r]=e;return r===Hg?r=t:r<0&&(r+=t),i<0?i+=t:i===Hg&&(i=0),Xg(n,this,i,r-i,-i),n}unshift(...e){const{length:t}=this,n=super.unshift(...e),{length:i}=e;return i>0&&Xg(this,this,0,t,i,!0),n}shift(){const e=super.shift(),{length:t}=this;return Jg(this,0),Xg(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let n=0;const i=t/2;for(;n{const i=t;t+=zg(e)?e.length:1,e instanceof Yg&&Xg(n,e,0,e.length,i)})),n):n}sort(...e){const t=Ug(this,...e.slice(0,1)),n=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const i=((e,t)=>{let n=t;for(;n in e;)n=e[n];return n})(n,e);i!==t&&(n[t]=i,qg(this,t,i))})),this}}var Zg={CommentArray:Yg};const Qg=tg.exports,{CommentArray:e_}=Zg,{PREFIX_BEFORE:t_,PREFIX_AFTER_PROP:n_,PREFIX_AFTER_COLON:i_,PREFIX_AFTER_VALUE:r_,PREFIX_AFTER:o_,PREFIX_BEFORE_ALL:a_,PREFIX_AFTER_ALL:s_,BRACKET_OPEN:c_,BRACKET_CLOSE:l_,CURLY_BRACKET_OPEN:u_,CURLY_BRACKET_CLOSE:d_,COLON:h_,COMMA:p_,MINUS:m_,EMPTY:f_,UNDEFINED:g_,define:__,assign_non_prop_comments:b_}=Pg,v_=e=>Qg.tokenize(e,{comment:!0,loc:!0}),y_=[];let w_=null,x_=null;const A_=[];let N_,k_,C_=!1,E_=!1,S_=null,O_=null,F_=null,D_=null;const B_=()=>{A_.length=y_.length=0,O_=null,N_=g_},L_=e=>Symbol.for(N_!==g_?e+h_+N_:e),M_=(e,t)=>D_?D_(e,t):t,T_=()=>{const e=new SyntaxError(`Unexpected token ${F_.value.slice(0,1)}`);throw Object.assign(e,F_.loc.start),e},R_=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,O_?O_.loc.end:{line:1,column:0}),e},$_=()=>{const e=S_[++k_];E_=F_&&e&&F_.loc.end.line===e.loc.start.line||!1,O_=F_,F_=e},I_=()=>(F_||R_(),"Punctuator"===F_.type?F_.value:F_.type),j_=e=>I_()===e,P_=e=>{j_(e)||T_()},z_=e=>{y_.push(w_),w_=e},U_=()=>{w_=y_.pop()},W_=()=>{if(!x_)return;const e=[];for(const n of x_){if(!n.inline)break;e.push(n)}const{length:t}=e;t&&(t===x_.length?x_=null:x_.splice(0,t),__(w_,L_(o_),e))},H_=e=>{x_&&(__(w_,L_(e),x_),x_=null)},V_=e=>{const t=[];for(;F_&&(j_("LineComment")||j_("BlockComment"));){const e=c(s({},F_),{inline:E_});t.push(e),$_()}C_||t.length&&(e?__(w_,L_(e),t):x_=t)},G_=(e,t)=>{t&&A_.push(N_),N_=e},q_=()=>{N_=A_.pop()};function K_(){let e=I_();if(e===u_)return $_(),(()=>{const e={};z_(e),G_(g_,!0);let t,n=!1;for(V_();!(j_(d_)||n&&(H_(r_),P_(p_),$_(),V_(),W_(),j_(d_)));)n=!0,P_("String"),t=JSON.parse(F_.value),G_(t),H_(t_),$_(),V_(n_),P_(h_),$_(),V_(i_),e[t]=M_(t,K_()),V_();return n&&H_(o_),$_(),N_=void 0,n||H_(t_),U_(),q_(),e})();if(e===c_)return $_(),(()=>{const e=new e_;z_(e),G_(g_,!0);let t=!1,n=0;for(V_();!(j_(l_)||t&&(H_(r_),P_(p_),$_(),V_(),W_(),j_(l_)));)t=!0,G_(n),H_(t_),e[n]=M_(n,K_()),n++,V_();return t&&H_(o_),$_(),N_=void 0,t||H_(t_),U_(),q_(),e})();let t,n=f_;switch(e===m_&&($_(),e=I_(),n=m_),e){case"String":case"Boolean":case"Null":case"Numeric":return t=F_.value,$_(),JSON.parse(n+t)}}var X_,J_={parse:(e,t,n)=>{B_(),S_=v_(e),D_=t,C_=n,S_.length||R_(),k_=-1,$_(),z_({}),V_(a_);let i=K_();var r;return V_(s_),F_&&T_(),n||null===i||(r=i,Object(r)!==r&&(i=new Object(i)),b_(i,w_)),U_(),i=M_("",i),B_(),S_.length=0,x_=w_=S_=O_=F_=D_=null,i},tokenize:v_},Y_="",Z_=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var n=e.length*t;if(X_!==e||void 0===X_)X_=e,Y_="";else if(Y_.length>=n)return Y_.substr(0,n);for(;n>Y_.length&&t>1;)1&t&&(Y_+=e),t>>=1,e+=e;return Y_=(Y_+=e).substr(0,n)}; +function(e){const t=cb,i=_b,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const r=2147483647;function o(e){if(e>r)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,i){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,i)}function s(e,t,i){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const i=0|p(e,t);let n=o(i);const r=n.write(e,t);r!==i&&(n=n.slice(0,r));return n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(G(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return u(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return d(e,t,i);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(e.buffer,SharedArrayBuffer)))return d(e,t,i);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,i);const r=function(e){if(a.isBuffer(e)){const t=0|h(e.length),i=o(t);return 0===i.length||e.copy(i,0,0,t),i}if(void 0!==e.length)return"number"!=typeof e.length||K(e.length)?o(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|h(e))}function u(e){const t=e.length<0?0:0|h(e.length),i=o(t);for(let n=0;n=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|e}function p(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||G(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const i=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return q(e).length;default:if(r)return n?-1:H(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,i){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return S(this,t,i);case"utf8":case"utf-8":return k(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return O(this,t,i);case"base64":return N(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,i){const n=e[t];e[t]=e[i],e[i]=n}function g(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),K(i=+i)&&(i=r?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:_(e,t,i,n,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):_(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function _(e,t,i,n,r){let o,a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,i/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){let n=-1;for(o=i;os&&(i=s-c),o=i;o>=0;o--){let i=!0;for(let n=0;nr&&(n=r):n=r;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a>8,r=i%256,o.push(r),o.push(n);return o}(t,e.length-i),e,i,n)}function N(e,i,n){return 0===i&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(i,n))}function k(e,t,i){i=Math.min(e.length,i);const n=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+a<=i){let i,n,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:i=e[r+1],128==(192&i)&&(c=(31&t)<<6|63&i,c>127&&(o=c));break;case 3:i=e[r+1],n=e[r+2],128==(192&i)&&128==(192&n)&&(c=(15&t)<<12|(63&i)<<6|63&n,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:i=e[r+1],n=e[r+2],s=e[r+3],128==(192&i)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&i)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),r+=a}return function(e){const t=e.length;if(t<=A)return String.fromCharCode.apply(String,e);let i="",n=0;for(;nn.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(n,r)):Uint8Array.prototype.set.call(n,t,r);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,r)}r+=t.length}return n},a.byteLength=p,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;ti&&(t+=" ... "),""},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,i,n,r){if(G(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||i>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=i)return 0;if(n>=r)return-1;if(t>=i)return 1;if(this===e)return 0;let o=(r>>>=0)-(n>>>=0),s=(i>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(n,r),u=e.slice(t,i);for(let a=0;a>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}const r=this.length-t;if((void 0===i||i>r)&&(i=r),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return b(this,e,t,i);case"utf8":case"utf-8":return v(this,e,t,i);case"ascii":case"latin1":case"binary":return y(this,e,t,i);case"base64":return w(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const A=4096;function C(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;rn)&&(i=n);let r="";for(let o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,i,n,r,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function B(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,i}function L(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i+7]=o,o>>=8,e[i+6]=o,o>>=8,e[i+5]=o,o>>=8,e[i+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i+3]=a,a>>=8,e[i+2]=a,a>>=8,e[i+1]=a,a>>=8,e[i]=a,i+8}function M(e,t,i,n,r,o){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function T(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function R(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,8),i.write(e,t,n,r,52,8),n+8}a.prototype.slice=function(e,t){const i=this.length;(e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e+--t],r=1;for(;t>0&&(r*=256);)n+=this[e+--t]*r;return n},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+i*2**24;return BigInt(n)+(BigInt(r)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+i;return(BigInt(n)<>>=0,t>>>=0,i||F(e,t,this.length);let n=this[e],r=1,o=0;for(;++o=r&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,i){e>>>=0,t>>>=0,i||F(e,t,this.length);let n=t,r=1,o=this[e+--n];for(;n>0&&(r*=256);)o+=this[e+--n]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||F(e,2,this.length);const i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt16BE=function(e,t){e>>>=0,t||F(e,2,this.length);const i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(i<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||F(e,4,this.length),i.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||F(e,4,this.length),i.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||F(e,8,this.length),i.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||F(e,8,this.length),i.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,i,n){if(e=+e,t>>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=1,o=0;for(this[t]=255&e;++o>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=i-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+i},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=J((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=J((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=0,o=1,a=0;for(this[t]=255&e;++r>0)-a&255;return t+i},a.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=i-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},a.prototype.writeInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=J((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=J((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,i){return T(this,e,t,!0,i)},a.prototype.writeFloatBE=function(e,t,i){return T(this,e,t,!1,i)},a.prototype.writeDoubleLE=function(e,t,i){return R(this,e,t,!0,i)},a.prototype.writeDoubleBE=function(e,t,i){return R(this,e,t,!1,i)},a.prototype.copy=function(e,t,i,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r=n+4;i-=3)t=`_${e.slice(i-3,i)}${t}`;return`${e.slice(0,i)}${t}`}function P(e,t,i,n,r,o){if(e>i||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${i}${n}`,new $.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,i){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+i]||U(t,e.length-(i+1))}(n,r,o)}function z(e,t){if("number"!=typeof e)throw new $.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,i){if(Math.floor(e)!==e)throw z(e,i),new $.ERR_OUT_OF_RANGE(i||"offset","an integer",e);if(t<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE(i||"offset",`>= ${i?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,i){let n=`The value of "${e}" is out of range.`,r=i;return Number.isInteger(i)&&Math.abs(i)>2**32?r=I(String(i)):"bigint"==typeof i&&(r=String(i),(i>BigInt(2)**BigInt(32)||i<-(BigInt(2)**BigInt(32)))&&(r=I(r)),r+="n"),n+=` It must be ${t}. Received ${r}`,n}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function H(e,t){let i;t=t||1/0;const n=e.length;let r=null;const o=[];for(let a=0;a55295&&i<57344){if(!r){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,i<128){if((t-=1)<0)break;o.push(i)}else if(i<2048){if((t-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function q(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,i,n){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let i=0;i<16;++i){const n=16*i;for(let r=0;r<16;++r)t[n+r]=e[i]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(sb),ab.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===bb(e)},ab.isBoolean=function(e){return"boolean"==typeof e},ab.isNull=function(e){return null===e},ab.isNullOrUndefined=function(e){return null==e},ab.isNumber=function(e){return"number"==typeof e},ab.isString=function(e){return"string"==typeof e},ab.isSymbol=function(e){return"symbol"==typeof e},ab.isUndefined=function(e){return void 0===e},ab.isRegExp=function(e){return"[object RegExp]"===bb(e)},ab.isObject=function(e){return"object"==typeof e&&null!==e},ab.isDate=function(e){return"[object Date]"===bb(e)},ab.isError=function(e){return"[object Error]"===bb(e)||e instanceof Error},ab.isFunction=function(e){return"function"==typeof e},ab.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},ab.isBuffer=sb.Buffer.isBuffer;const vb=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let yb;const wb=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function xb(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const i=wb(e),n=wb(t);let r=0;return in&&(t*=vb[i-n-1],e/=10,r=1),e===t?r:e=0;)r++;return r-t}function kb(e,t,i){for(i--;t>>1;r(i,e[t])<0?s=t:a=t+1}let c=n-a;switch(c){case 3:e[a+3]=e[a+2],yb[a+3]=yb[a+2];case 2:e[a+2]=e[a+1],yb[a+2]=yb[a+1];case 1:e[a+1]=e[a],yb[a+1]=yb[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],yb[a+c]=yb[a+c-1],c--}e[a]=i,yb[a]=o}}function Cb(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])>0){for(s=n-r;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}for(a++;a>>1);o(e,t[i+n])>0?a=n+1:c=n}return c}function Ob(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])<0){for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}else{for(s=n-r;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a>>1);o(e,t[i+n])<0?c=n:a=n+1}return c}class Sb{constructor(e,t){this.array=e,this.compare=t;const{length:i}=e;this.length=i,this.minGallop=7,this.tmpStorageLength=i<512?i>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=i<120?5:i<1542?10:i<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||i>=7);if(p)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[p+c]=o[h+c],yb[p+c]=yb[h+c];return o[d]=a[u],void(yb[d]=s[u])}let{minGallop:m}=this;for(;;){let i=0,f=0,g=!1;do{if(r(a[u],o[l])<0){if(o[d]=o[l],yb[d]=yb[l],d--,l--,i++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],yb[d]=s[u],d--,u--,f++,i=0,1==--n){g=!0;break}}while((i|f)=0;c--)o[p+c]=o[h+c],yb[p+c]=yb[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],yb[d]=s[u],d--,u--,1==--n){g=!0;break}if(f=n-Cb(o[l],a,0,n,n-1,r),0!==f){for(d-=f,u-=f,n-=f,p=d+1,h=u+1,c=0;c=7||f>=7);if(g)break;m<0&&(m=0),m+=2}if(this.minGallop=m,m<1&&(this.minGallop=1),1===n){for(d-=t,l-=t,p=d+1,h=l+1,c=t-1;c>=0;c--)o[p+c]=o[h+c],yb[p+c]=yb[h+c];o[d]=a[u],yb[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(h=d-(n-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=Nb(e,i,n,t),sl&&(n=l),Ab(e,i,i+n,i+s,t),s=n}c.pushRun(i,s),c.mergeRuns(),a-=s,i+=s}while(0!==a);return c.forceMergeRuns(),yb}};const Fb=Object.prototype.hasOwnProperty;const Db=(e,t)=>Fb.call(e,t),{isObject:Bb,isArray:Lb}=ab,Mb="before",Tb="before-all",Rb="after-all",$b=[Mb,"after-prop","after-colon","after-value","after"],jb=[Mb,Tb,Rb].map(Symbol.for),Ib=(e,t)=>Symbol.for(e+":"+t),Pb=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),zb=(e,t,i,n,r,o)=>{const a=Ib(r,n);if(!Db(t,a))return;const s=i===n?a:Ib(r,i);Pb(e,s,t[a]),o&&delete t[a]},Ub=(e,t,i,n,r)=>{$b.forEach((o=>{zb(e,t,i,n,o,r)}))},Wb=(e,t)=>{jb.forEach((i=>{const n=t[i];n&&Pb(e,i,n)}))};var Hb={SYMBOL_PREFIXES:$b,PREFIX_BEFORE:Mb,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Tb,PREFIX_AFTER_ALL:Rb,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Ib,define:Pb,copy_comments:Ub,swap_comments:(e,t,i)=>{t!==i&&$b.forEach((n=>{const r=Ib(n,i);if(!Db(e,r))return void zb(e,e,i,t,n,!0);const o=e[r];delete e[r],zb(e,e,i,t,n,!0),Pb(e,Ib(n,t),o)}))},assign_non_prop_comments:Wb,assign(e,t,i){if(!Bb(e))throw new TypeError("Cannot convert undefined or null to object");if(!Bb(t))return e;if(undefined===i)i=Object.keys(t),Wb(e,t);else{if(!Lb(i))throw new TypeError("keys must be array or undefined");0===i.length&&Wb(e,t)}return((e,t,i)=>(i.forEach((i=>{Db(t,i)&&(e[i]=t[i],Ub(e,t,i,i))})),e))(e,t,i)}};const{isArray:qb}=ab,{sort:Vb}=Eb,{SYMBOL_PREFIXES:Gb,UNDEFINED:Kb,symbol:Xb,copy_comments:Jb,swap_comments:Yb}=Hb,Zb=(e,t,i,n,r)=>{Jb(e,t,i+n,i,r)},Qb=(e,t,i,n,r,o)=>{if(r>0){let a=n;for(;a-- >0;)Zb(e,t,i+a,r,o);return}let a=0;for(;a{Gb.forEach((i=>{const n=Xb(i,t);delete e[n]}))};class tv extends Array{splice(...e){const{length:t}=this,i=super.splice(...e);let[n,r,...o]=e;n<0&&(n+=t),r=1===arguments.length?t-n:Math.min(t-n,r);const{length:a}=o,s=n+r;return Qb(this,this,s,t-s,a-r,!0),i}slice(...e){const{length:t}=this,i=super.slice(...e);if(!i.length)return new tv;let[n,r]=e;return r===Kb?r=t:r<0&&(r+=t),n<0?n+=t:n===Kb&&(n=0),Qb(i,this,n,r-n,-n),i}unshift(...e){const{length:t}=this,i=super.unshift(...e),{length:n}=e;return n>0&&Qb(this,this,0,t,n,!0),i}shift(){const e=super.shift(),{length:t}=this;return ev(this,0),Qb(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let i=0;const n=t/2;for(;i{const n=t;t+=qb(e)?e.length:1,e instanceof tv&&Qb(i,e,0,e.length,n)})),i):i}sort(...e){const t=Vb(this,...e.slice(0,1)),i=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const n=((e,t)=>{let i=t;for(;i in e;)i=e[i];return i})(i,e);n!==t&&(i[t]=n,Yb(this,t,n))})),this}}var iv={CommentArray:tv};const nv=ob.exports,{CommentArray:rv}=iv,{PREFIX_BEFORE:ov,PREFIX_AFTER_PROP:av,PREFIX_AFTER_COLON:sv,PREFIX_AFTER_VALUE:cv,PREFIX_AFTER:lv,PREFIX_BEFORE_ALL:uv,PREFIX_AFTER_ALL:dv,BRACKET_OPEN:hv,BRACKET_CLOSE:pv,CURLY_BRACKET_OPEN:mv,CURLY_BRACKET_CLOSE:fv,COLON:gv,COMMA:_v,MINUS:bv,EMPTY:vv,UNDEFINED:yv,define:wv,assign_non_prop_comments:xv}=Hb,Nv=e=>nv.tokenize(e,{comment:!0,loc:!0}),kv=[];let Av=null,Cv=null;const Ov=[];let Sv,Ev,Fv=!1,Dv=!1,Bv=null,Lv=null,Mv=null,Tv=null;const Rv=()=>{Ov.length=kv.length=0,Lv=null,Sv=yv},$v=e=>Symbol.for(Sv!==yv?e+gv+Sv:e),jv=(e,t)=>Tv?Tv(e,t):t,Iv=()=>{const e=new SyntaxError(`Unexpected token ${Mv.value.slice(0,1)}`);throw Object.assign(e,Mv.loc.start),e},Pv=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,Lv?Lv.loc.end:{line:1,column:0}),e},zv=()=>{const e=Bv[++Ev];Dv=Mv&&e&&Mv.loc.end.line===e.loc.start.line||!1,Lv=Mv,Mv=e},Uv=()=>(Mv||Pv(),"Punctuator"===Mv.type?Mv.value:Mv.type),Wv=e=>Uv()===e,Hv=e=>{Wv(e)||Iv()},qv=e=>{kv.push(Av),Av=e},Vv=()=>{Av=kv.pop()},Gv=()=>{if(!Cv)return;const e=[];for(const i of Cv){if(!i.inline)break;e.push(i)}const{length:t}=e;t&&(t===Cv.length?Cv=null:Cv.splice(0,t),wv(Av,$v(lv),e))},Kv=e=>{Cv&&(wv(Av,$v(e),Cv),Cv=null)},Xv=e=>{const t=[];for(;Mv&&(Wv("LineComment")||Wv("BlockComment"));){const e=c(s({},Mv),{inline:Dv});t.push(e),zv()}Fv||t.length&&(e?wv(Av,$v(e),t):Cv=t)},Jv=(e,t)=>{t&&Ov.push(Sv),Sv=e},Yv=()=>{Sv=Ov.pop()};function Zv(){let e=Uv();if(e===mv)return zv(),(()=>{const e={};qv(e),Jv(yv,!0);let t,i=!1;for(Xv();!(Wv(fv)||i&&(Kv(cv),Hv(_v),zv(),Xv(),Gv(),Wv(fv)));)i=!0,Hv("String"),t=JSON.parse(Mv.value),Jv(t),Kv(ov),zv(),Xv(av),Hv(gv),zv(),Xv(sv),e[t]=jv(t,Zv()),Xv();return i&&Kv(lv),zv(),Sv=void 0,i||Kv(ov),Vv(),Yv(),e})();if(e===hv)return zv(),(()=>{const e=new rv;qv(e),Jv(yv,!0);let t=!1,i=0;for(Xv();!(Wv(pv)||t&&(Kv(cv),Hv(_v),zv(),Xv(),Gv(),Wv(pv)));)t=!0,Jv(i),Kv(ov),e[i]=jv(i,Zv()),i++,Xv();return t&&Kv(lv),zv(),Sv=void 0,t||Kv(ov),Vv(),Yv(),e})();let t,i=vv;switch(e===bv&&(zv(),e=Uv(),i=bv),e){case"String":case"Boolean":case"Null":case"Numeric":return t=Mv.value,zv(),JSON.parse(i+t)}}var Qv,ey={parse:(e,t,i)=>{Rv(),Bv=Nv(e),Tv=t,Fv=i,Bv.length||Pv(),Ev=-1,zv(),qv({}),Xv(uv);let n=Zv();var r;return Xv(dv),Mv&&Iv(),i||null===n||(r=n,Object(r)!==r&&(n=new Object(n)),xv(n,Av)),Vv(),n=jv("",n),Rv(),Bv.length=0,Cv=Av=Bv=Lv=Mv=Tv=null,n},tokenize:Nv},ty="",iy=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var i=e.length*t;if(Qv!==e||void 0===Qv)Qv=e,ty="";else if(ty.length>=i)return ty.substr(0,i);for(;i>ty.length&&t>1;)1&t&&(ty+=e),t>>=1,e+=e;return ty=(ty+=e).substr(0,i)}; /*! * repeat-string * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. - */const{isArray:Q_,isObject:eb,isFunction:tb,isNumber:nb,isString:ib}=ng,rb=Z_,{PREFIX_BEFORE_ALL:ob,PREFIX_BEFORE:ab,PREFIX_AFTER_PROP:sb,PREFIX_AFTER_COLON:cb,PREFIX_AFTER_VALUE:lb,PREFIX_AFTER:ub,PREFIX_AFTER_ALL:db,BRACKET_OPEN:hb,BRACKET_CLOSE:pb,CURLY_BRACKET_OPEN:mb,CURLY_BRACKET_CLOSE:fb,COLON:gb,COMMA:_b,EMPTY:bb,UNDEFINED:vb}=Pg,yb=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,wb=e=>`${ab}:${e}`,xb=e=>`${lb}:${e}`,Ab=e=>`${ub}:${e}`,Nb={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},kb=e=>`"${(e=>(yb.lastIndex=0,yb.test(e)?e.replace(yb,(e=>{const t=Nb[e];return"string"==typeof t?t:e})):e))(e)}"`,Cb=(e,t,n,i)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return bb;let o=!1;const a=r.reduce(((e,{inline:t,type:i,value:r})=>(o="LineComment"===i,e+(t?" ":"\n"+n)+((e,t)=>t?`//${e}`:`/*${e}*/`)(r,o))),bb);return i||o?a+"\n"+n:a};let Eb=null,Sb=bb;const Ob=(e,t,n)=>e?t?e+t.trim()+"\n"+n:e.trimRight()+"\n"+n:t?t.trimRight()+"\n"+n:bb,Fb=(e,t,n)=>{const i=Cb(t,ab,n+Sb,!0);return Ob(i,e,n)},Db=(e,t)=>{if(!e)return"null";const n=t+Sb;let i=bb,r=bb,o=!0;return(Q_(Eb)?Eb:Object.keys(e)).forEach((t=>{const a=Bb(t,e,n);if(a===vb)return;o||(i+=_b),o=!1;const s=Ob(r,Cb(e,wb(t),n),n);i+=s||"\n"+n,i+=kb(t)+Cb(e,`${sb}:${t}`,n)+gb+Cb(e,(e=>`${cb}:${e}`)(t),n)+" "+a+Cb(e,xb(t),n),r=Cb(e,Ab(t),n)})),i+=Ob(r,Cb(e,ub,n),n),mb+Fb(i,e,t)+fb};function Bb(e,t,n){let i=t[e];switch(eb(i)&&tb(i.toJSON)&&(i=i.toJSON(e)),tb(Eb)&&(i=Eb.call(t,e,i)),typeof i){case"string":return kb(i);case"number":return Number.isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":return Q_(i)?((e,t)=>{const n=t+Sb,{length:i}=e;let r=bb,o=bb;for(let a=0;a{const i=(e=>ib(e)?e:nb(e)?rb(" ",e):bb)(n);if(!i)return JSON.stringify(e,t);tb(t)||Q_(t)||(t=null),Eb=t,Sb=i;const r=(e=>{if("object"!=typeof e)return!1;const t=Lb.call(e);return Mb.includes(t)})(e)?JSON.stringify(e):Bb("",{"":e},bb);return Eb=null,Sb=bb,eb(e)?Cb(e,ob,bb).trimLeft()+r+Cb(e,db,bb).trimRight():r},{CommentArray:Ib}=Zg,{assign:jb}=Pg;var Pb={parse:Tb,stringify:$b,tokenize:Rb,CommentArray:Ib,assign:jb},zb={},Ub={},Wb={};function Hb(e){return null==e}function Vb(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Wb.isNothing=Hb,Wb.isObject=function(e){return"object"==typeof e&&null!==e},Wb.toArray=function(e){return Array.isArray(e)?e:Hb(e)?[]:[e]},Wb.repeat=function(e,t){var n,i="";for(n=0;n0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),qb.repeat(" ",e)+n+a+r+"\n"+qb.repeat(" ",e+this.position-i+n.length)+"^"},Kb.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n};var Xb=Kb,Jb=Gb,Yb=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Zb=["scalar","sequence","mapping"];var Qb=function(e,t){var n,i;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Yb.indexOf(t))throw new Jb('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,i={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){i[String(t)]=e}))})),i),-1===Zb.indexOf(this.kind))throw new Jb('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},ev=Wb,tv=Gb,nv=Qb;function iv(e,t,n){var i=[];return e.include.forEach((function(e){n=iv(e,t,n)})),e[t].forEach((function(e){n.forEach((function(t,n){t.tag===e.tag&&t.kind===e.kind&&i.push(n)})),n.push(e)})),n.filter((function(e,t){return-1===i.indexOf(t)}))}function rv(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new tv("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=iv(this,"implicit",[]),this.compiledExplicit=iv(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),pv=Wb,mv=Qb,fv=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var gv=/^[-+]?[0-9]+e/;var _v=new ov({include:[av],implicit:[sv,cv,hv,new mv("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!fv.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,i,r;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){r.unshift(parseFloat(e,10))})),t=0,i=1,r.forEach((function(e){t+=e*i,i*=60})),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||pv.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(pv.isNegativeZero(e))return"-0.0";return n=e.toString(10),gv.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})]}),bv=new ov({include:[_v]}),vv=Qb,yv=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),wv=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var xv=new vv("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==yv.exec(e)||null!==wv.exec(e))},construct:function(e){var t,n,i,r,o,a,s,c,l=0,u=null;if(null===(t=yv.exec(e))&&(t=wv.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,a,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var Av,Nv=new Qb("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var kv=require;Av=kv("buffer").Buffer}catch(jx){}var Cv="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Ev=new Qb("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=Cv;for(n=0;n64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=Cv,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0===(n=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===n?(s.push(a>>10&255),s.push(a>>2&255)):12===n&&s.push(a>>4&255),Av?Av.from?Av.from(s):new Av(s):s},predicate:function(e){return Av&&Av.isBuffer(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=Cv;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0===(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}}),Sv=Qb,Ov=Object.prototype.hasOwnProperty,Fv=Object.prototype.toString;var Dv=new Sv("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[],s=e;for(t=0,n=s.length;t3)return!1;if("/"!==t[t.length-i.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return"/"===t[0]&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var zv=require;jv=zv("esprima")}catch(Px){"undefined"!=typeof window&&(jv=window.esprima)}var Uv=new Qb("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=jv.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(i){return!1}},construct:function(e){var t,n="("+e+")",i=jv.parse(n,{range:!0}),r=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){r.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(r,n.slice(t[0]+1,t[1]-1)):new Function(r,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),Wv=ov,Hv=Wv.DEFAULT=new Wv({include:[$v],explicit:[Iv,Pv,Uv]}),Vv=Wb,Gv=Gb,qv=Xb,Kv=$v,Xv=Hv,Jv=Object.prototype.hasOwnProperty,Yv=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Zv=/[\x85\u2028\u2029]/,Qv=/[,\[\]\{\}]/,ey=/^(?:!|!!|![a-z\-]+!)$/i,ty=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ny(e){return Object.prototype.toString.call(e)}function iy(e){return 10===e||13===e}function ry(e){return 9===e||32===e}function oy(e){return 9===e||32===e||10===e||13===e}function ay(e){return 44===e||91===e||93===e||123===e||125===e}function sy(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function cy(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function ly(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var uy=new Array(256),dy=new Array(256),hy=0;hy<256;hy++)uy[hy]=cy(hy)?1:0,dy[hy]=cy(hy);function py(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Xv,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function my(e,t){return new Gv(t,new qv(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function fy(e,t){throw my(e,t)}function gy(e,t){e.onWarning&&e.onWarning.call(null,my(e,t))}var _y={YAML:function(e,t,n){var i,r,o;null!==e.version&&fy(e,"duplication of %YAML directive"),1!==n.length&&fy(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&fy(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&fy(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&gy(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&fy(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],ey.test(i)||fy(e,"ill-formed tag handle (first argument) of the TAG directive"),Jv.call(e.tagMap,i)&&fy(e,'there is a previously declared suffix for "'+i+'" tag handle'),ty.test(r)||fy(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=r}};function by(e,t,n,i){var r,o,a,s;if(t1&&(e.result+=Vv.repeat("\n",t-1))}function ky(e,t){var n,i,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&45===i&&oy(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,xy(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,Sy(e,t,3,!1,!0),a.push(e.result),xy(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)fy(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt)&&(Sy(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(yy(e,u,d,h,p,m,o,a),h=p=m=null),xy(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)fy(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===r?fy(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?fy(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(ry(o)){do{o=e.input.charCodeAt(++e.position)}while(ry(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!iy(o)&&0!==o)}for(;0!==o;){for(wy(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),iy(o))d++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=sy(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:fy(e,"expected hexadecimal character");e.result+=ly(o),e.position++}else fy(e,"unknown escape sequence");n=i=e.position}else iy(s)?(by(e,n,i,!0),Ny(e,xy(e,!1,t)),n=i=e.position):e.position===e.lineStart&&Ay(e)?fy(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}fy(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?f=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!oy(i)&&!ay(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&fy(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),Jv.call(e.anchorMap,n)||fy(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],xy(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,c,l,u,d=e.kind,h=e.result;if(oy(u=e.input.charCodeAt(e.position))||ay(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(oy(i=e.input.charCodeAt(e.position+1))||n&&ay(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(oy(i=e.input.charCodeAt(e.position+1))||n&&ay(i))break}else if(35===u){if(oy(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Ay(e)||n&&ay(u))break;if(iy(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,xy(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(by(e,r,o,!1),Ny(e,e.line-s),r=o=e.position,a=!1),ry(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return by(e,r,o,!1),!!e.result||(e.kind=d,e.result=h,!1)}(e,d,1===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||fy(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&ky(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&fy(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):fy(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):fy(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function Oy(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(xy(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!oy(r);)r=e.input.charCodeAt(++e.position);for(i=[],(n=e.input.slice(t,e.position)).length<1&&fy(e,"directive name must not be less than one character in length");0!==r;){for(;ry(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!iy(r));break}if(iy(r))break;for(t=e.position;0!==r&&!oy(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&wy(e),Jv.call(_y,n)?_y[n](e,n,i):gy(e,'unknown document directive "'+n+'"')}xy(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,xy(e,!0,-1)):a&&fy(e,"directives end mark is expected"),Sy(e,e.lineIndent-1,4,!1,!0),xy(e,!0,-1),e.checkLineBreaks&&Zv.test(e.input.slice(o,e.position))&&gy(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Ay(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,xy(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,p=p&&Ky(a,s)}else{for(o=0;oi&&" "!==e[h+1],h=o);else if(!qy(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&Ky(a,s)}u=u||d&&o-h-1>i&&" "!==e[h+1]}return l||u?n>9&&Xy(e)?5:u?4:3:p&&!r(e)?1:2}function Yy(e,t,n,i){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==zy.indexOf(t))return"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),a=i||e.flowLevel>-1&&n>=e.flowLevel;switch(Jy(t,a,e.indent,o,(function(t){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+Zy(t,e.indent)+Qy(Hy(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,ew(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;i=r.exec(e);){var c=i[1],l=i[2];n=" "===l[0],o+=c+(a||n||""===l?"":"\n")+ew(l,t),a=n}return o}(t,o),r));case 5:return'"'+function(e){for(var t,n,i,r="",o=0;o=55296&&t<=56319&&(n=e.charCodeAt(o+1))>=56320&&n<=57343?(r+=Uy(1024*(t-55296)+n-56320+65536),o++):r+=!(i=Py[t])&&qy(t)?e[o]:i||Uy(t);return r}(t)+'"';default:throw new Ty("impossible error: invalid scalar style")}}()}function Zy(e,t){var n=Xy(e)?String(t):"",i="\n"===e[e.length-1];return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function Qy(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function ew(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,s=0,c="";n=r.exec(e);)(s=n.index)-o>t&&(i=a>o?a:s,c+="\n"+e.slice(o,i),o=i+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function tw(e,t,n){var i,r,o,a,s,c;for(o=0,a=(r=n?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function nw(e,t,n,i,r,o){e.tag=null,e.dump=n,tw(e,n,!1)||tw(e,n,!0);var a=Iy.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)i&&0!==Object.keys(e.dump).length?(!function(e,t,n,i){var r,o,a,s,c,l,u="",d=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Ty("sortKeys must be a boolean or a function");for(r=0,o=h.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=Vy(e,t)),nw(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",u+=l+=e.dump));e.tag=d,e.dump=u||"{}"}(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,n){var i,r,o,a,s,c="",l=e.tag,u=Object.keys(n);for(i=0,r=u.length;i1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),nw(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;i&&0!==e.dump.length?(!function(e,t,n,i){var r,o,a="",s=e.tag;for(r=0,o=n.length;r "+e.dump)}return!0}function iw(e,t){var n,i,r=[],o=[];for(rw(e,r,o),n=0,i=o.length;n3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(e)}}),U(w(Nw,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(xw.prototype=new N).__e=function(e){var t=this,n=ww(t.__v),i=t.o.get(e);return i[0]++,function(r){var o=function(){t.props.revealOrder?(i.push(r),Aw(t,e,i)):r()};n?n(o):o()}},xw.prototype.render=function(e){this.u=null,this.o=new Map;var t=D(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},xw.prototype.componentDidUpdate=xw.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){Aw(e,n,t)}))};var Cw="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,Ew=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Sw=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};N.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(N.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var Ow=d.event;function Fw(){}function Dw(){return this.cancelBubble}function Bw(){return this.defaultPrevented}d.event=function(e){return Ow&&(e=Ow(e)),e.persist=Fw,e.isPropagationStopped=Dw,e.isDefaultPrevented=Bw,e.nativeEvent=e};var Lw,Mw={configurable:!0,get:function(){return this.class}},Tw=d.vnode;d.vnode=function(e){var t=e.type,n=e.props,i=n;if("string"==typeof t){for(var r in i={},n){var o=n[r];"value"===r&&"defaultValue"in n&&null==o||("defaultValue"===r&&"value"in n&&null==n.value?r="value":"download"===r&&!0===o?o="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!Sw(n.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():Ew.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),i[r]=o)}"select"==t&&i.multiple&&Array.isArray(i.value)&&(i.value=D(n.children).forEach((function(e){e.props.selected=-1!=i.value.indexOf(e.props.value)}))),"select"==t&&null!=i.defaultValue&&(i.value=D(n.children).forEach((function(e){e.props.selected=i.multiple?-1!=i.defaultValue.indexOf(e.props.value):i.defaultValue==e.props.value}))),e.props=i}t&&n.class!=n.className&&(Mw.enumerable="className"in n,null!=n.className&&(i.class=n.className),Object.defineProperty(i,"className",Mw)),e.$$typeof=Cw,Tw&&Tw(e)};var Rw=d.__r;d.__r=function(e){Rw&&Rw(e),Lw=e.__c};var $w={ReactCurrentDispatcher:{current:{readContext:function(e){return Lw.__n[e.__c].props.value}}}};function Iw(e){return!!e&&e.$$typeof===Cw}"object"==typeof performance&&"function"==typeof performance.now&&performance.now.bind(performance);var jw={useState:Ne,useReducer:ke,useEffect:Ce,useLayoutEffect:Ee,useRef:Se,useImperativeHandle:function(e,t,n){ge=6,Ee((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==n?n:n.concat(e))},useMemo:Oe,useCallback:Fe,useContext:De,useDebugValue:function(e,t){d.useDebugValue&&d.useDebugValue(t?t(e):e)},version:"16.8.0",Children:_w,render:function(e,t,n){return null==t.__k&&(t.textContent=""),U(e,t),"function"==typeof n&&n(),e?e.__c:null},hydrate:function(e,t,n){return W(e,t),"function"==typeof n&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(U(null,e),!0)},createPortal:function(e,t){return w(kw,{__v:e,i:t})},createElement:w,createContext:V,createFactory:function(e){return w.bind(null,e)},cloneElement:function(e){return Iw(e)?H.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:A,isValidElement:Iw,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:N,PureComponent:hw,memo:pw,forwardRef:function(e){function t(t,n){var i=uw({},t);return delete i.ref,e(i,(n=t.ref||n)&&("object"!=typeof n||"current"in n)?n:null)}return t.$$typeof=fw,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:A,Suspense:yw,SuspenseList:xw,lazy:function(e){var t,n,i;function r(r){if(t||(t=e()).then((function(e){n=e.default||e}),(function(e){i=e})),i)throw i;if(!n)throw t;return w(n,r)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:$w},Pw=Object.defineProperty,zw=Object.defineProperties,Uw=Object.getOwnPropertyDescriptors,Ww=Object.getOwnPropertySymbols,Hw=Object.prototype.hasOwnProperty,Vw=Object.prototype.propertyIsEnumerable,Gw=(e,t,n)=>t in e?Pw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,qw=(e,t)=>{for(var n in t||(t={}))Hw.call(t,n)&&Gw(e,n,t[n]);if(Ww)for(var n of Ww(t))Vw.call(t,n)&&Gw(e,n,t[n]);return e};const Kw="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function Xw(e){return`[giscus] An error occurred. Error message: "${e}".`}function Jw(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function Yw(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent="\n .giscus, .giscus-frame {\n width: 100%;\n }\n .giscus-frame {\n border: none;\n color-scheme: normal;\n }\n ",document.head.prepend(e)}function Zw(e){const[t,n]=Ne(""),i=function({repo:e,repoId:t,category:n="",categoryId:i="",mapping:r,term:o="",theme:a="light",reactionsEnabled:s="1",emitMetadata:c="0",inputPosition:l="bottom",lang:u="en",session:d,origin:h}){const p=new URL(location.href);p.searchParams.delete("giscus");const m=p.toString(),f={origin:h=h||m,session:d,theme:a,reactionsEnabled:s,emitMetadata:c,inputPosition:l,repo:e,repoId:t,category:n,categoryId:i,description:Jw("description")};switch(r){case"url":f.term=m;break;case"title":f.term=document.title;break;case"og:title":f.term=Jw("title");break;case"specific":f.term=o;break;case"number":f.number=o;break;case"pathname":default:f.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${u}/widget?${new URLSearchParams(f)}`}((r=qw({},e),zw(r,Uw({session:t}))));var r;const o=Se(null);return Ce((()=>{const e=location.href,t=new URL(e),i=localStorage.getItem("giscus-session"),r=t.searchParams.get("giscus")||"";if(r)return localStorage.setItem("giscus-session",JSON.stringify(r)),n(r),t.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,t.toString());if(i)try{n(JSON.parse(i||"")||"")}catch(o){n(""),localStorage.removeItem("giscus-session"),console.warn(`${Xw(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),Ce(Yw,[]),Ce((()=>{const e=function(e,t=null){return function(n){if("https://giscus.app"!==n.origin)return;const{data:i}=n;if("object"!=typeof i||!i.giscus)return;if(t&&i.giscus.resizeHeight&&(t.style.height=`${i.giscus.resizeHeight}px`),!i.giscus.error)return;const r=i.giscus.error;if(r.includes("Bad credentials")||r.includes("Invalid state value")){if(null!==localStorage.getItem("giscus-session"))return localStorage.removeItem("giscus-session"),e(),void console.warn(`${Xw(r)} Session has been cleared.`);console.error(`${Xw(r)} No session is stored initially. ${Kw}`)}r.includes("Discussion not found")?console.warn(`[giscus] ${r}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${Xw(r)} ${Kw}`)}}((()=>n("")),o.current);return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}),[]),jw.createElement("div",{className:"giscus"},jw.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:i,ref:o}))}function Qw(e){const[t,n]=Ne(!1);return Ce((()=>n(!0)),[]),t?jw.createElement(Zw,qw({},e)):null}var ex={}; + */const{isArray:ny,isObject:ry,isFunction:oy,isNumber:ay,isString:sy}=ab,cy=iy,{PREFIX_BEFORE_ALL:ly,PREFIX_BEFORE:uy,PREFIX_AFTER_PROP:dy,PREFIX_AFTER_COLON:hy,PREFIX_AFTER_VALUE:py,PREFIX_AFTER:my,PREFIX_AFTER_ALL:fy,BRACKET_OPEN:gy,BRACKET_CLOSE:_y,CURLY_BRACKET_OPEN:by,CURLY_BRACKET_CLOSE:vy,COLON:yy,COMMA:wy,EMPTY:xy,UNDEFINED:Ny}=Hb,ky=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Ay=e=>`${uy}:${e}`,Cy=e=>`${py}:${e}`,Oy=e=>`${my}:${e}`,Sy={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Ey=e=>`"${(e=>(ky.lastIndex=0,ky.test(e)?e.replace(ky,(e=>{const t=Sy[e];return"string"==typeof t?t:e})):e))(e)}"`,Fy=(e,t,i,n)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return xy;let o=!1;const a=r.reduce(((e,{inline:t,type:n,value:r})=>(o="LineComment"===n,e+(t?" ":"\n"+i)+((e,t)=>t?`//${e}`:`/*${e}*/`)(r,o))),xy);return n||o?a+"\n"+i:a};let Dy=null,By=xy;const Ly=(e,t,i)=>e?t?e+t.trim()+"\n"+i:e.trimRight()+"\n"+i:t?t.trimRight()+"\n"+i:xy,My=(e,t,i)=>{const n=Fy(t,uy,i+By,!0);return Ly(n,e,i)},Ty=(e,t)=>{if(!e)return"null";const i=t+By;let n=xy,r=xy,o=!0;return(ny(Dy)?Dy:Object.keys(e)).forEach((t=>{const a=Ry(t,e,i);if(a===Ny)return;o||(n+=wy),o=!1;const s=Ly(r,Fy(e,Ay(t),i),i);n+=s||"\n"+i,n+=Ey(t)+Fy(e,`${dy}:${t}`,i)+yy+Fy(e,(e=>`${hy}:${e}`)(t),i)+" "+a+Fy(e,Cy(t),i),r=Fy(e,Oy(t),i)})),n+=Ly(r,Fy(e,my,i),i),by+My(n,e,t)+vy};function Ry(e,t,i){let n=t[e];switch(ry(n)&&oy(n.toJSON)&&(n=n.toJSON(e)),oy(Dy)&&(n=Dy.call(t,e,n)),typeof n){case"string":return Ey(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return ny(n)?((e,t)=>{const i=t+By,{length:n}=e;let r=xy,o=xy;for(let a=0;a{const n=(e=>sy(e)?e:ay(e)?cy(" ",e):xy)(i);if(!n)return JSON.stringify(e,t);oy(t)||ny(t)||(t=null),Dy=t,By=n;const r=(e=>{if("object"!=typeof e)return!1;const t=$y.call(e);return jy.includes(t)})(e)?JSON.stringify(e):Ry("",{"":e},xy);return Dy=null,By=xy,ry(e)?Fy(e,ly,xy).trimLeft()+r+Fy(e,fy,xy).trimRight():r},{CommentArray:Uy}=iv,{assign:Wy}=Hb;var Hy={parse:Iy,stringify:zy,tokenize:Py,CommentArray:Uy,assign:Wy},qy={},Vy={},Gy={};function Ky(e){return null==e}function Xy(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Gy.isNothing=Ky,Gy.isObject=function(e){return"object"==typeof e&&null!==e},Gy.toArray=function(e){return Array.isArray(e)?e:Ky(e)?[]:[e]},Gy.repeat=function(e,t){var i,n="";for(i=0;i0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(n,o),Yy.repeat(" ",e)+i+a+r+"\n"+Yy.repeat(" ",e+this.position-n+i.length)+"^"},Zy.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(i+=":\n"+t),i};var Qy=Zy,ew=Jy,tw=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],iw=["scalar","sequence","mapping"];var nw=function(e,t){var i,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===tw.indexOf(t))throw new ew('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(i=t.styleAliases||null,n={},null!==i&&Object.keys(i).forEach((function(e){i[e].forEach((function(t){n[String(t)]=e}))})),n),-1===iw.indexOf(this.kind))throw new ew('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},rw=Gy,ow=Jy,aw=nw;function sw(e,t,i){var n=[];return e.include.forEach((function(e){i=sw(e,t,i)})),e[t].forEach((function(e){i.forEach((function(t,i){t.tag===e.tag&&t.kind===e.kind&&n.push(i)})),i.push(e)})),i.filter((function(e,t){return-1===n.indexOf(t)}))}function cw(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new ow("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=sw(this,"implicit",[]),this.compiledExplicit=sw(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,i={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){i[e.kind][e.tag]=i.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),_w=Gy,bw=nw,vw=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var yw=/^[-+]?[0-9]+e/;var ww=new lw({include:[uw],implicit:[dw,hw,gw,new bw("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!vw.test(e)||"_"===e[e.length-1])},construct:function(e){var t,i,n,r;return i="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){r.unshift(parseFloat(e,10))})),t=0,n=1,r.forEach((function(e){t+=e*n,n*=60})),i*t):i*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||_w.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_w.isNegativeZero(e))return"-0.0";return i=e.toString(10),yw.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})]}),xw=new lw({include:[ww]}),Nw=nw,kw=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Aw=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var Cw=new Nw("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==kw.exec(e)||null!==Aw.exec(e))},construct:function(e){var t,i,n,r,o,a,s,c,l=0,u=null;if(null===(t=kw.exec(e))&&(t=Aw.exec(e)),null===t)throw new Error("Date resolve error");if(i=+t[1],n=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(i,n,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(i,n,r,o,a,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var Ow,Sw=new nw("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var Ew=require;Ow=Ew("buffer").Buffer}catch(Wk){}var Fw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Dw=new nw("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=0,r=e.length,o=Fw;for(i=0;i64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,i,n=e.replace(/[\r\n=]/g,""),r=n.length,o=Fw,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(n.charAt(t));return 0===(i=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===i?(s.push(a>>10&255),s.push(a>>2&255)):12===i&&s.push(a>>4&255),Ow?Ow.from?Ow.from(s):new Ow(s):s},predicate:function(e){return Ow&&Ow.isBuffer(e)},represent:function(e){var t,i,n="",r=0,o=e.length,a=Fw;for(t=0;t>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]),r=(r<<8)+e[t];return 0===(i=o%3)?(n+=a[r>>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]):2===i?(n+=a[r>>10&63],n+=a[r>>4&63],n+=a[r<<2&63],n+=a[64]):1===i&&(n+=a[r>>2&63],n+=a[r<<4&63],n+=a[64],n+=a[64]),n}}),Bw=nw,Lw=Object.prototype.hasOwnProperty,Mw=Object.prototype.toString;var Tw=new Bw("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,i,n,r,o,a=[],s=e;for(t=0,i=s.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,i=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(i&&(n=i[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var qw=require;Ww=qw("esprima")}catch(Hk){"undefined"!=typeof window&&(Ww=window.esprima)}var Vw=new nw("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",i=Ww.parse(t,{range:!0});return"Program"===i.type&&1===i.body.length&&"ExpressionStatement"===i.body[0].type&&("ArrowFunctionExpression"===i.body[0].expression.type||"FunctionExpression"===i.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,i="("+e+")",n=Ww.parse(i,{range:!0}),r=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){r.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(r,i.slice(t[0]+1,t[1]-1)):new Function(r,"return "+i.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),Gw=lw,Kw=Gw.DEFAULT=new Gw({include:[zw],explicit:[Uw,Hw,Vw]}),Xw=Gy,Jw=Jy,Yw=Qy,Zw=zw,Qw=Kw,ex=Object.prototype.hasOwnProperty,tx=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ix=/[\x85\u2028\u2029]/,nx=/[,\[\]\{\}]/,rx=/^(?:!|!!|![a-z\-]+!)$/i,ox=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ax(e){return Object.prototype.toString.call(e)}function sx(e){return 10===e||13===e}function cx(e){return 9===e||32===e}function lx(e){return 9===e||32===e||10===e||13===e}function ux(e){return 44===e||91===e||93===e||123===e||125===e}function dx(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function hx(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function px(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var mx=new Array(256),fx=new Array(256),gx=0;gx<256;gx++)mx[gx]=hx(gx)?1:0,fx[gx]=hx(gx);function _x(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Qw,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function bx(e,t){return new Jw(t,new Yw(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function vx(e,t){throw bx(e,t)}function yx(e,t){e.onWarning&&e.onWarning.call(null,bx(e,t))}var wx={YAML:function(e,t,i){var n,r,o;null!==e.version&&vx(e,"duplication of %YAML directive"),1!==i.length&&vx(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&vx(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),o=parseInt(n[2],10),1!==r&&vx(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&yx(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,r;2!==i.length&&vx(e,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],rx.test(n)||vx(e,"ill-formed tag handle (first argument) of the TAG directive"),ex.call(e.tagMap,n)&&vx(e,'there is a previously declared suffix for "'+n+'" tag handle'),ox.test(r)||vx(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=r}};function xx(e,t,i,n){var r,o,a,s;if(t1&&(e.result+=Xw.repeat("\n",t-1))}function Ex(e,t){var i,n,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),n=e.input.charCodeAt(e.position);0!==n&&45===n&&lx(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Cx(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(i=e.line,Bx(e,t,3,!1,!0),a.push(e.result),Cx(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>t)&&0!==n)vx(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt)&&(Bx(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(kx(e,u,d,h,p,m,o,a),h=p=m=null),Cx(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)vx(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===r?vx(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?vx(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(cx(o)){do{o=e.input.charCodeAt(++e.position)}while(cx(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!sx(o)&&0!==o)}for(;0!==o;){for(Ax(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),sx(o))d++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=dx(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:vx(e,"expected hexadecimal character");e.result+=px(o),e.position++}else vx(e,"unknown escape sequence");i=n=e.position}else sx(s)?(xx(e,i,n,!0),Sx(e,Cx(e,!1,t)),i=n=e.position):e.position===e.lineStart&&Ox(e)?vx(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}vx(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?f=!0:!function(e){var t,i,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!lx(n)&&!ux(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&vx(e,"name of an alias node must contain at least one character"),i=e.input.slice(t,e.position),ex.call(e.anchorMap,i)||vx(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],Cx(e,!0,-1),!0}(e)?function(e,t,i){var n,r,o,a,s,c,l,u,d=e.kind,h=e.result;if(lx(u=e.input.charCodeAt(e.position))||ux(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(lx(n=e.input.charCodeAt(e.position+1))||i&&ux(n)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(lx(n=e.input.charCodeAt(e.position+1))||i&&ux(n))break}else if(35===u){if(lx(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Ox(e)||i&&ux(u))break;if(sx(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,Cx(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(xx(e,r,o,!1),Sx(e,e.line-s),r=o=e.position,a=!1),cx(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return xx(e,r,o,!1),!!e.result||(e.kind=d,e.result=h,!1)}(e,d,1===i)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||vx(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&Ex(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&vx(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):vx(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):vx(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function Lx(e){var t,i,n,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(Cx(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!lx(r);)r=e.input.charCodeAt(++e.position);for(n=[],(i=e.input.slice(t,e.position)).length<1&&vx(e,"directive name must not be less than one character in length");0!==r;){for(;cx(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!sx(r));break}if(sx(r))break;for(t=e.position;0!==r&&!lx(r);)r=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==r&&Ax(e),ex.call(wx,i)?wx[i](e,i,n):yx(e,'unknown document directive "'+i+'"')}Cx(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,Cx(e,!0,-1)):a&&vx(e,"directives end mark is expected"),Bx(e,e.lineIndent-1,4,!1,!0),Cx(e,!0,-1),e.checkLineBreaks&&ix.test(e.input.slice(o,e.position))&&yx(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Ox(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Cx(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,p=p&&Zx(a,s)}else{for(o=0;on&&" "!==e[h+1],h=o);else if(!Yx(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&Zx(a,s)}u=u||d&&o-h-1>n&&" "!==e[h+1]}return l||u?i>9&&Qx(e)?5:u?4:3:p&&!r(e)?1:2}function tN(e,t,i,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==qx.indexOf(t))return"'"+t+"'";var r=e.indent*Math.max(1,i),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),a=n||e.flowLevel>-1&&i>=e.flowLevel;switch(eN(t,a,e.indent,o,(function(t){return function(e,t){var i,n;for(i=0,n=e.implicitTypes.length;i"+iN(t,e.indent)+nN(Kx(function(e,t){var i,n,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,rN(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;n=r.exec(e);){var c=n[1],l=n[2];i=" "===l[0],o+=c+(a||i||""===l?"":"\n")+rN(l,t),a=i}return o}(t,o),r));case 5:return'"'+function(e){for(var t,i,n,r="",o=0;o=55296&&t<=56319&&(i=e.charCodeAt(o+1))>=56320&&i<=57343?(r+=Vx(1024*(t-55296)+i-56320+65536),o++):r+=!(n=Hx[t])&&Yx(t)?e[o]:n||Vx(t);return r}(t)+'"';default:throw new Ix("impossible error: invalid scalar style")}}()}function iN(e,t){var i=Qx(e)?String(t):"",n="\n"===e[e.length-1];return i+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function nN(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function rN(e,t){if(""===e||" "===e[0])return e;for(var i,n,r=/ [^ ]/g,o=0,a=0,s=0,c="";i=r.exec(e);)(s=i.index)-o>t&&(n=a>o?a:s,c+="\n"+e.slice(o,n),o=n+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function oN(e,t,i){var n,r,o,a,s,c;for(o=0,a=(r=i?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function aN(e,t,i,n,r,o){e.tag=null,e.dump=i,oN(e,i,!1)||oN(e,i,!0);var a=Ux.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(i))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,i,n){var r,o,a,s,c,l,u="",d=e.tag,h=Object.keys(i);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Ix("sortKeys must be a boolean or a function");for(r=0,o=h.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=Xx(e,t)),aN(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",u+=l+=e.dump));e.tag=d,e.dump=u||"{}"}(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,i){var n,r,o,a,s,c="",l=e.tag,u=Object.keys(i);for(n=0,r=u.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),aN(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,i,n){var r,o,a="",s=e.tag;for(r=0,o=i.length;r "+e.dump)}return!0}function sN(e,t){var i,n,r=[],o=[];for(cN(e,r,o),i=0,n=o.length;i3;)i.pop()();if(i[1]>>1,1),t.i.removeChild(e)}}),U(w(SN,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(CN.prototype=new k).__e=function(e){var t=this,i=AN(t.__v),n=t.o.get(e);return n[0]++,function(r){var o=function(){t.props.revealOrder?(n.push(r),ON(t,e,n)):r()};i?i(o):o()}},CN.prototype.render=function(e){this.u=null,this.o=new Map;var t=D(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var i=t.length;i--;)this.o.set(t[i],this.u=[1,0,this.u]);return e.children},CN.prototype.componentDidUpdate=CN.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,i){ON(e,i,t)}))};var FN="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,DN=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,BN=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};k.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(k.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var LN=d.event;function MN(){}function TN(){return this.cancelBubble}function RN(){return this.defaultPrevented}d.event=function(e){return LN&&(e=LN(e)),e.persist=MN,e.isPropagationStopped=TN,e.isDefaultPrevented=RN,e.nativeEvent=e};var $N,jN={configurable:!0,get:function(){return this.class}},IN=d.vnode;d.vnode=function(e){var t=e.type,i=e.props,n=i;if("string"==typeof t){for(var r in n={},i){var o=i[r];"value"===r&&"defaultValue"in i&&null==o||("defaultValue"===r&&"value"in i&&null==i.value?r="value":"download"===r&&!0===o?o="":/ondoubleclick/i.test(r)?r="ondblclick":/^onchange(textarea|input)/i.test(r+t)&&!BN(i.type)?r="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(r)?r=r.toLowerCase():DN.test(r)?r=r.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),n[r]=o)}"select"==t&&n.multiple&&Array.isArray(n.value)&&(n.value=D(i.children).forEach((function(e){e.props.selected=-1!=n.value.indexOf(e.props.value)}))),"select"==t&&null!=n.defaultValue&&(n.value=D(i.children).forEach((function(e){e.props.selected=n.multiple?-1!=n.defaultValue.indexOf(e.props.value):n.defaultValue==e.props.value}))),e.props=n}t&&i.class!=i.className&&(jN.enumerable="className"in i,null!=i.className&&(n.class=i.className),Object.defineProperty(n,"className",jN)),e.$$typeof=FN,IN&&IN(e)};var PN=d.__r;d.__r=function(e){PN&&PN(e),$N=e.__c};var zN={ReactCurrentDispatcher:{current:{readContext:function(e){return $N.__n[e.__c].props.value}}}};function UN(e){return!!e&&e.$$typeof===FN}"object"==typeof performance&&"function"==typeof performance.now&&performance.now.bind(performance);var WN={useState:ke,useReducer:Ae,useEffect:Ce,useLayoutEffect:Oe,useRef:Se,useImperativeHandle:function(e,t,i){ge=6,Oe((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==i?i:i.concat(e))},useMemo:Ee,useCallback:Fe,useContext:De,useDebugValue:function(e,t){d.useDebugValue&&d.useDebugValue(t?t(e):e)},version:"16.8.0",Children:wN,render:function(e,t,i){return null==t.__k&&(t.textContent=""),U(e,t),"function"==typeof i&&i(),e?e.__c:null},hydrate:function(e,t,i){return W(e,t),"function"==typeof i&&i(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(U(null,e),!0)},createPortal:function(e,t){return w(EN,{__v:e,i:t})},createElement:w,createContext:q,createFactory:function(e){return w.bind(null,e)},cloneElement:function(e){return UN(e)?H.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:N,isValidElement:UN,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:k,PureComponent:gN,memo:_N,forwardRef:function(e){function t(t,i){var n=mN({},t);return delete n.ref,e(n,(i=t.ref||i)&&("object"!=typeof i||"current"in i)?i:null)}return t.$$typeof=vN,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:N,Suspense:kN,SuspenseList:CN,lazy:function(e){var t,i,n;function r(r){if(t||(t=e()).then((function(e){i=e.default||e}),(function(e){n=e})),n)throw n;if(!i)throw t;return w(i,r)}return r.displayName="Lazy",r.__f=!0,r},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:zN},HN=Object.defineProperty,qN=Object.defineProperties,VN=Object.getOwnPropertyDescriptors,GN=Object.getOwnPropertySymbols,KN=Object.prototype.hasOwnProperty,XN=Object.prototype.propertyIsEnumerable,JN=(e,t,i)=>t in e?HN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,YN=(e,t)=>{for(var i in t||(t={}))KN.call(t,i)&&JN(e,i,t[i]);if(GN)for(var i of GN(t))XN.call(t,i)&&JN(e,i,t[i]);return e};const ZN="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function QN(e){return`[giscus] An error occurred. Error message: "${e}".`}function ek(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function tk(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent="\n .giscus, .giscus-frame {\n width: 100%;\n }\n .giscus-frame {\n border: none;\n color-scheme: normal;\n }\n ",document.head.prepend(e)}function ik(e){const[t,i]=ke(""),n=function({repo:e,repoId:t,category:i="",categoryId:n="",mapping:r,term:o="",theme:a="light",reactionsEnabled:s="1",emitMetadata:c="0",inputPosition:l="bottom",lang:u="en",session:d,origin:h}){const p=new URL(location.href);p.searchParams.delete("giscus");const m=p.toString(),f={origin:h=h||m,session:d,theme:a,reactionsEnabled:s,emitMetadata:c,inputPosition:l,repo:e,repoId:t,category:i,categoryId:n,description:ek("description")};switch(r){case"url":f.term=m;break;case"title":f.term=document.title;break;case"og:title":f.term=ek("title");break;case"specific":f.term=o;break;case"number":f.number=o;break;case"pathname":default:f.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${u}/widget?${new URLSearchParams(f)}`}((r=YN({},e),qN(r,VN({session:t}))));var r;const o=Se(null);return Ce((()=>{const e=location.href,t=new URL(e),n=localStorage.getItem("giscus-session"),r=t.searchParams.get("giscus")||"";if(r)return localStorage.setItem("giscus-session",JSON.stringify(r)),i(r),t.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,t.toString());if(n)try{i(JSON.parse(n||"")||"")}catch(o){i(""),localStorage.removeItem("giscus-session"),console.warn(`${QN(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),Ce(tk,[]),Ce((()=>{const e=function(e,t=null){return function(i){if("https://giscus.app"!==i.origin)return;const{data:n}=i;if("object"!=typeof n||!n.giscus)return;if(t&&n.giscus.resizeHeight&&(t.style.height=`${n.giscus.resizeHeight}px`),!n.giscus.error)return;const r=n.giscus.error;if(r.includes("Bad credentials")||r.includes("Invalid state value")){if(null!==localStorage.getItem("giscus-session"))return localStorage.removeItem("giscus-session"),e(),void console.warn(`${QN(r)} Session has been cleared.`);console.error(`${QN(r)} No session is stored initially. ${ZN}`)}r.includes("Discussion not found")?console.warn(`[giscus] ${r}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${QN(r)} ${ZN}`)}}((()=>i("")),o.current);return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}),[]),WN.createElement("div",{className:"giscus"},WN.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:n,ref:o}))}function nk(e){const[t,i]=ke(!1);return Ce((()=>i(!0)),[]),t?WN.createElement(ik,YN({},e)):null}var rk={}; /*! * howler.js v2.2.3 * howlerjs.com @@ -22,7 +22,7 @@ function(e){const t=rg,n=pg,i="function"==typeof Symbol&&"function"==typeof Symb * goldfirestudios.com * * MIT License - */function tx(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}!function(e){!function(){var t=function(){this.init()};t.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var t=this||n;if(e=parseFloat(e),t.ctx||u(),void 0!==e&&e>=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var i=0;i=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,u()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(u){return e}if(!t||"function"!=typeof t.canPlayType)return e;var i=t.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",o=r.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),c=r.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!i&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!i,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(n){for(;e._html5AudioPool.length0?s._seek:i._sprite[e][0]/1e3),u=Math.max(0,(i._sprite[e][0]+i._sprite[e][1])/1e3-l),d=1e3*u/Math.abs(s._rate),h=i._sprite[e][0]/1e3,p=(i._sprite[e][0]+i._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var m=function(){s._paused=!1,s._seek=l,s._start=h,s._stop=p,s._loop=!(!s._loop&&!i._sprite[e][2])};if(!(l>=p)){var f=s._node;if(i._webAudio){var g=function(){i._playLock=!1,m(),i._refreshBuffer(s);var e=s._muted||i._muted?0:s._volume;f.gain.setValueAtTime(e,n.ctx.currentTime),s._playStart=n.ctx.currentTime,void 0===f.bufferSource.start?s._loop?f.bufferSource.noteGrainOn(0,l,86400):f.bufferSource.noteGrainOn(0,l,u):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,u),d!==1/0&&(i._endTimers[s._id]=setTimeout(i._ended.bind(i,s),d)),t||setTimeout((function(){i._emit("play",s._id),i._loadQueue()}),0)};"running"===n.state&&"interrupted"!==n.ctx.state?g():(i._playLock=!0,i.once("resume",g),i._clearTimer(s._id))}else{var _=function(){f.currentTime=l,f.muted=s._muted||i._muted||n._muted||f.muted,f.volume=s._volume*n.volume(),f.playbackRate=s._rate;try{var r=f.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(i._playLock=!0,m(),r.then((function(){i._playLock=!1,f._unlocked=!0,t?i._loadQueue():i._emit("play",s._id)})).catch((function(){i._playLock=!1,i._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(i._playLock=!1,m(),i._emit("play",s._id)),f.playbackRate=s._rate,f.paused)return void i._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?i._endTimers[s._id]=setTimeout(i._ended.bind(i,s),d):(i._endTimers[s._id]=function(){i._ended(s),f.removeEventListener("ended",i._endTimers[s._id],!1)},f.addEventListener("ended",i._endTimers[s._id],!1))}catch(o){i._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===f.src&&(f.src=i._src,f.load());var b=window&&window.ejecta||!f.readyState&&n._navigator.isCocoonJS;if(f.readyState>=3||b)_();else{i._playLock=!0,i._state="loading";var v=function(){i._state="loaded",_(),f.removeEventListener(n._canPlayEvent,v,!1)};f.addEventListener(n._canPlayEvent,v,!1),i._clearTimer(s._id)}}return s._id}i._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var n=t._getSoundIds(e),i=0;i=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(i=t?r._soundById(t):r._sounds[0])?i._volume:0;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"volume",action:function(){r.volume.apply(r,o)}}),r;void 0===t&&(r._volume=e),t=r._getSoundIds(t);for(var c=0;c0?i/l:i),d=Date.now();e._fadeTo=n,e._interval=setInterval((function(){var r=(Date.now()-d)/i;d=Date.now(),s+=c*r,s=Math.round(100*s)/100,s=c<0?Math.max(n,s):Math.min(n,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(nt&&s>=n)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(n,e._id),a._emit("fade",e._id))}),u)},_stopFade:function(e){var t=this,i=t._soundById(e);return i&&i._interval&&(t._webAudio&&i._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(i._interval),i._interval=null,t.volume(i._fadeTo,e),i._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,n,i=this,r=arguments;if(0===r.length)return i._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(n=i._soundById(parseInt(r[0],10)))&&n._loop;e=r[0],i._loop=e}else 2===r.length&&(e=r[0],t=parseInt(r[1],10));for(var o=i._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(i=r._soundById(t))?i._rate:r._rate;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"rate",action:function(){r.rate.apply(r,o)}}),r;void 0===t&&(r._rate=e),t=r._getSoundIds(t);for(var c=0;c=0?t=parseInt(r[0],10):i._sounds.length&&(t=i._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),t=parseInt(r[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==i._state||i._playLock))return i._queue.push({event:"seek",action:function(){i.seek.apply(i,r)}}),i;var s=i._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(i._webAudio){var c=i.playing(t)?n.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var u=i.playing(t);u&&i.pause(t,!0),s._seek=e,s._ended=!1,i._clearTimer(t),i._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var d=function(){u&&i.play(t,!0),i._emit("seek",t)};if(u&&!i._webAudio){var h=function(){i._playLock?setTimeout(h,0):d()};setTimeout(h,0)}else d()}return i},playing:function(e){var t=this;if("number"==typeof e){var n=t._soundById(e);return!!n&&!n._paused}for(var i=0;i=0&&n._howls.splice(r,1);var a=!0;for(i=0;i=0){a=!1;break}return o&&a&&delete o[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,n,i){var r=this["_on"+e];return"function"==typeof t&&r.push(i?{id:n,fn:t,once:i}:{id:n,fn:t}),this},off:function(e,t,n){var i=this,r=i["_on"+e],o=0;if("number"==typeof t&&(n=t,t=null),t||n)for(o=0;o=0;o--)r[o].id&&r[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,n)}.bind(i,r[o].fn),0),r[o].once&&i.off(e,r[o].fn,r[o].id));return i._loadQueue(e),i},_loadQueue:function(e){var t=this;if(t._queue.length>0){var n=t._queue[0];n.event===e&&(t._queue.shift(),t._loadQueue()),e||n.action()}return t},_ended:function(e){var t=this,i=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;i--){if(n<=t)return;e._sounds[i]._ended&&(e._webAudio&&e._sounds[i]._node&&e._sounds[i]._node.disconnect(0),e._sounds.splice(i,1),n--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],n=0;n=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(i){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(e){this._parent=e,this.init()};r.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,i=n._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(i,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=i*n.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var n=atob(t.split(",")[1]),i=new Uint8Array(n.length),r=0;r0?(o[t._src]=e,l(t,e)):i()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(r).catch(i):n.ctx.decodeAudioData(e,r,i)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},u=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(o){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),t=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),i=t?parseInt(t[1],10):null;if(e&&i&&i<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};e.Howler=n,e.Howl=i,void 0!==je?(je.HowlerGlobal=t,je.Howler=n,je.Howl=i,je.Sound=r):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=n,window.Howl=i,window.Sound=r)}(), + */function ok(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}!function(e){!function(){var t=function(){this.init()};t.prototype={init:function(){var e=this||i;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var t=this||i;if(e=parseFloat(e),t.ctx||u(),void 0!==e&&e>=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,i.ctx.currentTime);for(var n=0;n=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,u()),e},codecs:function(e){return(this||i)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||i;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||i,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(u){return e}if(!t||"function"!=typeof t.canPlayType)return e;var n=t.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",o=r.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),c=r.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!n&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!n,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||i;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(i){for(;e._html5AudioPool.length0?s._seek:n._sprite[e][0]/1e3),u=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-l),d=1e3*u/Math.abs(s._rate),h=n._sprite[e][0]/1e3,p=(n._sprite[e][0]+n._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var m=function(){s._paused=!1,s._seek=l,s._start=h,s._stop=p,s._loop=!(!s._loop&&!n._sprite[e][2])};if(!(l>=p)){var f=s._node;if(n._webAudio){var g=function(){n._playLock=!1,m(),n._refreshBuffer(s);var e=s._muted||n._muted?0:s._volume;f.gain.setValueAtTime(e,i.ctx.currentTime),s._playStart=i.ctx.currentTime,void 0===f.bufferSource.start?s._loop?f.bufferSource.noteGrainOn(0,l,86400):f.bufferSource.noteGrainOn(0,l,u):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,u),d!==1/0&&(n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d)),t||setTimeout((function(){n._emit("play",s._id),n._loadQueue()}),0)};"running"===i.state&&"interrupted"!==i.ctx.state?g():(n._playLock=!0,n.once("resume",g),n._clearTimer(s._id))}else{var _=function(){f.currentTime=l,f.muted=s._muted||n._muted||i._muted||f.muted,f.volume=s._volume*i.volume(),f.playbackRate=s._rate;try{var r=f.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(n._playLock=!0,m(),r.then((function(){n._playLock=!1,f._unlocked=!0,t?n._loadQueue():n._emit("play",s._id)})).catch((function(){n._playLock=!1,n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(n._playLock=!1,m(),n._emit("play",s._id)),f.playbackRate=s._rate,f.paused)return void n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d):(n._endTimers[s._id]=function(){n._ended(s),f.removeEventListener("ended",n._endTimers[s._id],!1)},f.addEventListener("ended",n._endTimers[s._id],!1))}catch(o){n._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===f.src&&(f.src=n._src,f.load());var b=window&&window.ejecta||!f.readyState&&i._navigator.isCocoonJS;if(f.readyState>=3||b)_();else{n._playLock=!0,n._state="loading";var v=function(){n._state="loaded",_(),f.removeEventListener(i._canPlayEvent,v,!1)};f.addEventListener(i._canPlayEvent,v,!1),n._clearTimer(s._id)}}return s._id}n._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var i=t._getSoundIds(e),n=0;n=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(n=t?r._soundById(t):r._sounds[0])?n._volume:0;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"volume",action:function(){r.volume.apply(r,o)}}),r;void 0===t&&(r._volume=e),t=r._getSoundIds(t);for(var c=0;c0?n/l:n),d=Date.now();e._fadeTo=i,e._interval=setInterval((function(){var r=(Date.now()-d)/n;d=Date.now(),s+=c*r,s=Math.round(100*s)/100,s=c<0?Math.max(i,s):Math.min(i,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(it&&s>=i)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(i,e._id),a._emit("fade",e._id))}),u)},_stopFade:function(e){var t=this,n=t._soundById(e);return n&&n._interval&&(t._webAudio&&n._node.gain.cancelScheduledValues(i.ctx.currentTime),clearInterval(n._interval),n._interval=null,t.volume(n._fadeTo,e),n._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,i,n=this,r=arguments;if(0===r.length)return n._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(i=n._soundById(parseInt(r[0],10)))&&i._loop;e=r[0],n._loop=e}else 2===r.length&&(e=r[0],t=parseInt(r[1],10));for(var o=n._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(n=r._soundById(t))?n._rate:r._rate;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"rate",action:function(){r.rate.apply(r,o)}}),r;void 0===t&&(r._rate=e),t=r._getSoundIds(t);for(var c=0;c=0?t=parseInt(r[0],10):n._sounds.length&&(t=n._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),t=parseInt(r[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==n._state||n._playLock))return n._queue.push({event:"seek",action:function(){n.seek.apply(n,r)}}),n;var s=n._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(n._webAudio){var c=n.playing(t)?i.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var u=n.playing(t);u&&n.pause(t,!0),s._seek=e,s._ended=!1,n._clearTimer(t),n._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var d=function(){u&&n.play(t,!0),n._emit("seek",t)};if(u&&!n._webAudio){var h=function(){n._playLock?setTimeout(h,0):d()};setTimeout(h,0)}else d()}return n},playing:function(e){var t=this;if("number"==typeof e){var i=t._soundById(e);return!!i&&!i._paused}for(var n=0;n=0&&i._howls.splice(r,1);var a=!0;for(n=0;n=0){a=!1;break}return o&&a&&delete o[e._src],i.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,i,n){var r=this["_on"+e];return"function"==typeof t&&r.push(n?{id:i,fn:t,once:n}:{id:i,fn:t}),this},off:function(e,t,i){var n=this,r=n["_on"+e],o=0;if("number"==typeof t&&(i=t,t=null),t||i)for(o=0;o=0;o--)r[o].id&&r[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,i)}.bind(n,r[o].fn),0),r[o].once&&n.off(e,r[o].fn,r[o].id));return n._loadQueue(e),n},_loadQueue:function(e){var t=this;if(t._queue.length>0){var i=t._queue[0];i.event===e&&(t._queue.shift(),t._loadQueue()),e||i.action()}return t},_ended:function(e){var t=this,n=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;n--){if(i<=t)return;e._sounds[n]._ended&&(e._webAudio&&e._sounds[n]._node&&e._sounds[n]._node.disconnect(0),e._sounds.splice(n,1),i--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],i=0;i=0;if(i._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=i._scratchBuffer}catch(n){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(i._navigator&&i._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(e){this._parent=e,this.init()};r.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,n=i._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),e._node.gain.setValueAtTime(n,i.ctx.currentTime),e._node.paused=!0,e._node.connect(i.masterGain)):i.noAudio||(e._node=i._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(i._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=n*i.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(i._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var i=atob(t.split(",")[1]),n=new Uint8Array(i.length),r=0;r0?(o[t._src]=e,l(t,e)):n()};"undefined"!=typeof Promise&&1===i.ctx.decodeAudioData.length?i.ctx.decodeAudioData(e).then(r).catch(n):i.ctx.decodeAudioData(e,r,n)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},u=function(){if(i.usingWebAudio){try{"undefined"!=typeof AudioContext?i.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?i.ctx=new webkitAudioContext:i.usingWebAudio=!1}catch(o){i.usingWebAudio=!1}i.ctx||(i.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(i._navigator&&i._navigator.platform),t=i._navigator&&i._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=t?parseInt(t[1],10):null;if(e&&n&&n<9){var r=/safari/.test(i._navigator&&i._navigator.userAgent.toLowerCase());i._navigator&&!r&&(i.usingWebAudio=!1)}i.usingWebAudio&&(i.masterGain=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),i.masterGain.gain.setValueAtTime(i._muted?0:i._volume,i.ctx.currentTime),i.masterGain.connect(i.ctx.destination)),i._setup()}};e.Howler=i,e.Howl=n,void 0!==Ie?(Ie.HowlerGlobal=t,Ie.Howler=i,Ie.Howl=n,Ie.Sound=r):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=i,window.Howl=n,window.Sound=r)}(), /*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * @@ -34,5 +34,5 @@ function(e){const t=rg,n=pg,i="function"==typeof Symbol&&"function"==typeof Symb * * MIT License */ -function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var n=t._howls.length-1;n>=0;n--)t._howls[n].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,n){var i=this;return i.ctx&&i.ctx.listener?(t="number"!=typeof t?i._pos[1]:t,n="number"!=typeof n?i._pos[2]:n,"number"!=typeof e?i._pos:(i._pos=[e,t,n],void 0!==i.ctx.listener.positionX?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]),i)):i},HowlerGlobal.prototype.orientation=function(e,t,n,i,r,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,n="number"!=typeof n?s[2]:n,i="number"!=typeof i?s[3]:i,r="number"!=typeof r?s[4]:r,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,n,i,r,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,n,i,r,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var n=this;return n._orientation=t.orientation||[1,0,0],n._stereo=t.stereo||null,n._pos=t.pos||null,n._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},n._onstereo=t.onstereo?[{fn:t.onstereo}]:[],n._onpos=t.onpos?[{fn:t.onpos}]:[],n._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,n){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"stereo",action:function(){i.stereo(e,n)}}),i;var r=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===n){if("number"!=typeof e)return i._stereo;i._stereo=e,i._pos=[e,0,0]}for(var o=i._getSoundIds(n),a=0;a"']/,rx=/[&<>"']/g,ox=/[<>"']|&(?!#?\w+;)/,ax=/[<>"']|&(?!#?\w+;)/g,sx={"&":"&","<":"<",">":">",'"':""","'":"'"},cx=e=>sx[e];function lx(e,t){if(t){if(ix.test(e))return e.replace(rx,cx)}else if(ox.test(e))return e.replace(ax,cx);return e}const ux=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function dx(e){return e.replace(ux,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const hx=/(^|[^\[])\^/g;function px(e,t){e=e.source||e,t=t||"";const n={replace:(t,i)=>(i=(i=i.source||i).replace(hx,"$1"),e=e.replace(t,i),n),getRegex:()=>new RegExp(e,t)};return n}const mx=/[^\w:]/g,fx=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function gx(e,t,n){if(e){let e;try{e=decodeURIComponent(dx(n)).replace(mx,"").toLowerCase()}catch(i){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!fx.test(n)&&(n=function(e,t){_x[" "+e]||(bx.test(e)?_x[" "+e]=e+"/":_x[" "+e]=Nx(e,"/",!0));const n=-1===(e=_x[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(vx,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(yx,"$1")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(i){return null}return n}const _x={},bx=/^[^:]+:\/*[^/]*$/,vx=/^([^:]+:)[\s\S]*$/,yx=/^([^:]+:\/*[^/]*)[\s\S]*$/;const wx={exec:function(){}};function xx(e){let t,n,i=1;for(;i{let i=!1,r=t;for(;--r>=0&&"\\"===n[r];)i=!i;return i?"|":" |"})).split(/ \|/);let i=0;if(n[0].trim()||n.shift(),n[n.length-1].trim()||n.pop(),n.length>t)n.splice(t);else for(;n.length1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}function Ex(e,t,n,i){const r=t.href,o=t.title?lx(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){i.state.inLink=!0;const e={type:"link",raw:n,href:r,title:o,text:a,tokens:i.inlineTokens(a,[])};return i.state.inLink=!1,e}return{type:"image",raw:n,href:r,title:o,text:lx(a)}}class Sx{constructor(e){this.options=e||nx}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Nx(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t){const n=e.match(/^(\s+)(?:```)/);if(null===n)return t;const i=n[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[n]=t;return n.length>=i.length?e.slice(i.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=Nx(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const n={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(n.text,n.tokens),n}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n,i,r,o,a,s,c,l,u,d,h,p,m=t[1].trim();const f=m.length>1,g={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:!1,items:[]};m=f?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`,this.options.pedantic&&(m=f?m:"[*+-]");const _=new RegExp(`^( {0,3}${m})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(p=!1,t=_.exec(e))&&!this.rules.block.hr.test(e);){if(n=t[0],e=e.substring(n.length),l=t[2].split("\n",1)[0],u=e.split("\n",1)[0],this.options.pedantic?(o=2,h=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,h=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(n+=u+"\n",e=e.substring(u.length+1),p=!0),!p){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(d=e.split("\n",1)[0],l=d,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())h+="\n"+l.slice(o);else{if(s)break;h+="\n"+l}s||l.trim()||(s=!0),n+=d+"\n",e=e.substring(d.length+1)}}g.loose||(c?g.loose=!0:/\n *\n *$/.test(n)&&(c=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(h),i&&(r="[ ] "!==i[0],h=h.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:n,task:!!i,checked:r,loose:!1,text:h}),g.raw+=n}g.items[g.items.length-1].raw=n.trimRight(),g.items[g.items.length-1].text=h.trimRight(),g.raw=g.raw.trimRight();const b=g.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let n=0;for(const i of t)if("\n"===i&&(n+=1),n>1)return!0;return!1}));!g.loose&&e.length&&t&&(g.loose=!0,g.items[a].loose=!0)}return g}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):lx(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:Ax(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let n,i,r,o,a=e.align.length;for(n=0;n({text:e})));for(a=e.header.length,i=0;i/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):lx(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=Nx(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const n=e.length;let i=0,r=0;for(;r-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],i="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],i=e[3])}else i=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^$/.test(e)?n.slice(1):n.slice(1,-1)),Ex(t,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:i?i.replace(this.rules.inline._escapes,"$1"):i},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=(n[2]||n[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Ex(n,e,n[0],this.lexer)}}emStrong(e,t,n=""){let i=this.rules.inline.emStrong.lDelim.exec(e);if(!i)return;if(i[3]&&n.match(/[\p{L}\p{N}]/u))return;const r=i[1]||i[2]||"";if(!r||r&&(""===n||this.rules.inline.punctuation.exec(n))){const n=i[0].length-1;let r,o,a=n,s=0;const c="*"===i[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);null!=(i=c.exec(t));){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(o=r.length,i[3]||i[4]){a+=o;continue}if((i[5]||i[6])&&n%3&&!((n+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(n,o)%2){const t=e.slice(1,n+i.index+o);return{type:"em",raw:e.slice(0,n+i.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,n+i.index+o-1);return{type:"strong",raw:e.slice(0,n+i.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const n=/[^ ]/.test(e),i=/^ /.test(e)&&/ $/.test(e);return n&&i&&(e=e.substring(1,e.length-1)),e=lx(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const n=this.rules.inline.autolink.exec(e);if(n){let e,i;return"@"===n[2]?(e=lx(this.options.mangle?t(n[1]):n[1]),i="mailto:"+e):(e=lx(n[1]),i=e),{type:"link",raw:n[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let n;if(n=this.rules.inline.url.exec(e)){let e,i;if("@"===n[2])e=lx(this.options.mangle?t(n[0]):n[0]),i="mailto:"+e;else{let t;do{t=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(t!==n[0]);e=lx(n[0]),i="www."===n[1]?"http://"+e:e}return{type:"link",raw:n[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const n=this.rules.inline.text.exec(e);if(n){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):lx(n[0]):n[0]:lx(this.options.smartypants?t(n[0]):n[0]),{type:"text",raw:n[0],text:e}}}}const Ox={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:wx,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Ox.def=px(Ox.def).replace("label",Ox._label).replace("title",Ox._title).getRegex(),Ox.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ox.listItemStart=px(/^( *)(bull) */).replace("bull",Ox.bullet).getRegex(),Ox.list=px(Ox.list).replace(/bull/g,Ox.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ox.def.source+")").getRegex(),Ox._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ox._comment=/|$)/,Ox.html=px(Ox.html,"i").replace("comment",Ox._comment).replace("tag",Ox._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ox.paragraph=px(Ox._paragraph).replace("hr",Ox.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ox._tag).getRegex(),Ox.blockquote=px(Ox.blockquote).replace("paragraph",Ox.paragraph).getRegex(),Ox.normal=xx({},Ox),Ox.gfm=xx({},Ox.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Ox.gfm.table=px(Ox.gfm.table).replace("hr",Ox.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ox._tag).getRegex(),Ox.gfm.paragraph=px(Ox._paragraph).replace("hr",Ox.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Ox.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ox._tag).getRegex(),Ox.pedantic=xx({},Ox.normal,{html:px("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ox._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:wx,paragraph:px(Ox.normal._paragraph).replace("hr",Ox.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ox.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const Fx={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:wx,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:wx,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),i+="&#"+n+";";return i}Fx._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Fx.punctuation=px(Fx.punctuation).replace(/punctuation/g,Fx._punctuation).getRegex(),Fx.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Fx.escapedEmSt=/\\\*|\\_/g,Fx._comment=px(Ox._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Fx.emStrong.lDelim=px(Fx.emStrong.lDelim).replace(/punct/g,Fx._punctuation).getRegex(),Fx.emStrong.rDelimAst=px(Fx.emStrong.rDelimAst,"g").replace(/punct/g,Fx._punctuation).getRegex(),Fx.emStrong.rDelimUnd=px(Fx.emStrong.rDelimUnd,"g").replace(/punct/g,Fx._punctuation).getRegex(),Fx._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Fx._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Fx._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Fx.autolink=px(Fx.autolink).replace("scheme",Fx._scheme).replace("email",Fx._email).getRegex(),Fx._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Fx.tag=px(Fx.tag).replace("comment",Fx._comment).replace("attribute",Fx._attribute).getRegex(),Fx._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Fx._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Fx._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Fx.link=px(Fx.link).replace("label",Fx._label).replace("href",Fx._href).replace("title",Fx._title).getRegex(),Fx.reflink=px(Fx.reflink).replace("label",Fx._label).replace("ref",Ox._label).getRegex(),Fx.nolink=px(Fx.nolink).replace("ref",Ox._label).getRegex(),Fx.reflinkSearch=px(Fx.reflinkSearch,"g").replace("reflink",Fx.reflink).replace("nolink",Fx.nolink).getRegex(),Fx.normal=xx({},Fx),Fx.pedantic=xx({},Fx.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:px(/^!?\[(label)\]\((.*?)\)/).replace("label",Fx._label).getRegex(),reflink:px(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Fx._label).getRegex()}),Fx.gfm=xx({},Fx.normal,{escape:px(Fx.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(n=i.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),1===n.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),i=t[t.length-1],!i||"paragraph"!==i.type&&"text"!==i.type?t.push(n):(i.raw+="\n"+n.raw,i.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),i=t[t.length-1],!i||"paragraph"!==i.type&&"text"!==i.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(i.raw+="\n"+n.raw,i.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text);else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else{if(r=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const n=e.slice(1);let i;this.options.extensions.startBlock.forEach((function(e){i=e.call({lexer:this},n),"number"==typeof i&&i>=0&&(t=Math.min(t,i))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(this.state.top&&(n=this.tokenizer.paragraph(r)))i=t[t.length-1],o&&"paragraph"===i.type?(i.raw+="\n"+n.raw,i.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(n),o=r.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),i=t[t.length-1],i&&"text"===i.type?(i.raw+="\n"+n.raw,i.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let n,i,r,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+Cx("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+Cx("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((i=>!!(n=i.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),i=t[t.length-1],i&&"text"===n.type&&"text"===i.type?(i.raw+=n.raw,i.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),i=t[t.length-1],i&&"text"===n.type&&"text"===i.type?(i.raw+=n.raw,i.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,c,s))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e,Bx))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e,Bx))){if(r=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const n=e.slice(1);let i;this.options.extensions.startInline.forEach((function(e){i=e.call({lexer:this},n),"number"==typeof i&&i>=0&&(t=Math.min(t,i))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(r,Dx))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(s=n.raw.slice(-1)),a=!0,i=t[t.length-1],i&&"text"===i.type?(i.raw+=n.raw,i.text+=n.text):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(n.raw.length),t.push(n);return t}}class Mx{constructor(e){this.options=e||nx}code(e,t,n){const i=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,i);null!=t&&t!==e&&(n=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",i?'
'+(n?e:lx(e,!0))+"
\n":"
"+(n?e:lx(e,!0))+"
\n"}blockquote(e){return"
\n"+e+"
\n"}html(e){return e}heading(e,t,n,i){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
\n":"
\n"}list(e,t,n){const i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,n){if(null===(e=gx(this.options.sanitize,this.options.baseUrl,e)))return n;let i='",i}image(e,t,n){if(null===(e=gx(this.options.sanitize,this.options.baseUrl,e)))return n;let i=''+n+'":">",i}text(e){return e}}class Tx{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,n){return""+n}image(e,t,n){return""+n}br(){return""}}class Rx{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let n=e,i=0;if(this.seen.hasOwnProperty(n)){i=this.seen[e];do{i++,n=e+"-"+i}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=i,this.seen[n]=0),n}slug(e,t={}){const n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)}}class $x{constructor(e){this.options=e||nx,this.options.renderer=this.options.renderer||new Mx,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Tx,this.slugger=new Rx}static parse(e,t){return new $x(t).parse(e)}static parseInline(e,t){return new $x(t).parseInline(e)}parse(e,t=!0){let n,i,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w="";const x=e.length;for(n=0;n0&&"paragraph"===g.tokens[0].type?(g.tokens[0].text=v+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=v+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:v}):f+=v),f+=this.parse(g.tokens,m),u+=this.renderer.listitem(f,b,_);w+=this.renderer.list(u,h,p);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(u=d.tokens?this.parseInline(d.tokens):d.text;n+1{r(e.text,e.lang,(function(t,n){if(t)return a(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const n=Lx.lex(e,t);return t.walkTokens&&Ix.walkTokens(n,t.walkTokens),$x.parse(n,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+lx(i.message+"",!0)+"
    ";throw i}}Ix.options=Ix.setOptions=function(e){var t;return xx(Ix.defaults,e),t=Ix.defaults,nx=t,Ix},Ix.getDefaults=tx,Ix.defaults=nx,Ix.use=function(...e){const t=xx({},...e),n=Ix.defaults.extensions||{renderers:{},childTokens:{}};let i;e.forEach((e=>{if(e.extensions&&(i=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=n.renderers?n.renderers[e.name]:null;n.renderers[e.name]=t?function(...n){let i=e.renderer.apply(this,n);return!1===i&&(i=t.apply(this,n)),i}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");n[e.level]?n[e.level].unshift(e.tokenizer):n[e.level]=[e.tokenizer],e.start&&("block"===e.level?n.startBlock?n.startBlock.push(e.start):n.startBlock=[e.start]:"inline"===e.level&&(n.startInline?n.startInline.push(e.start):n.startInline=[e.start]))}e.childTokens&&(n.childTokens[e.name]=e.childTokens)}))),e.renderer){const n=Ix.defaults.renderer||new Mx;for(const t in e.renderer){const i=n[t];n[t]=(...r)=>{let o=e.renderer[t].apply(n,r);return!1===o&&(o=i.apply(n,r)),o}}t.renderer=n}if(e.tokenizer){const n=Ix.defaults.tokenizer||new Sx;for(const t in e.tokenizer){const i=n[t];n[t]=(...r)=>{let o=e.tokenizer[t].apply(n,r);return!1===o&&(o=i.apply(n,r)),o}}t.tokenizer=n}if(e.walkTokens){const n=Ix.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),n&&n.call(this,t)}}i&&(t.extensions=n),Ix.setOptions(t)}))},Ix.walkTokens=function(e,t){for(const n of e)switch(t.call(Ix,n),n.type){case"table":for(const e of n.header)Ix.walkTokens(e.tokens,t);for(const e of n.rows)for(const n of e)Ix.walkTokens(n.tokens,t);break;case"list":Ix.walkTokens(n.items,t);break;default:Ix.defaults.extensions&&Ix.defaults.extensions.childTokens&&Ix.defaults.extensions.childTokens[n.type]?Ix.defaults.extensions.childTokens[n.type].forEach((function(e){Ix.walkTokens(n[e],t)})):n.tokens&&Ix.walkTokens(n.tokens,t)}},Ix.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");kx(t=xx({},Ix.defaults,t||{}));try{const n=Lx.lexInline(e,t);return t.walkTokens&&Ix.walkTokens(n,t.walkTokens),$x.parseInline(n,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+lx(n.message+"",!0)+"
    ";throw n}},Ix.Parser=$x,Ix.parser=$x.parse,Ix.Renderer=Mx,Ix.TextRenderer=Tx,Ix.Lexer=Lx,Ix.lexer=Lx.lex,Ix.Tokenizer=Sx,Ix.Slugger=Rx,Ix.parse=Ix,$x.parse,Lx.lex;export{Ix as $,Fe as A,am as B,ip as C,Fp as D,Ip as E,De as F,Qp as G,lm as H,qp as I,vp as J,nm as K,fm as L,Em as M,Zf as N,fp as O,Kp as P,Qf as Q,Pb as R,lw as S,pw as T,Be as U,Qw as V,he as W,gp as X,ex as Y,Vf as Z,Wp as _,w as a,de as a0,U as a1,re as b,Ne as c,St as d,Oe as e,A as f,ie as g,fr as h,la as i,En as j,nc as k,Pe as l,iu as m,Um as n,Wm as o,Vm as p,V as q,Ct as r,Se as s,Gm as t,Tp as u,cm as v,Xm as w,Ym as x,Ce as y,Xh as z}; -//# sourceMappingURL=vendor.ae3ccf68.js.map +function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var i=t._howls.length-1;i>=0;i--)t._howls[i].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,i){var n=this;return n.ctx&&n.ctx.listener?(t="number"!=typeof t?n._pos[1]:t,i="number"!=typeof i?n._pos[2]:i,"number"!=typeof e?n._pos:(n._pos=[e,t,i],void 0!==n.ctx.listener.positionX?(n.ctx.listener.positionX.setTargetAtTime(n._pos[0],Howler.ctx.currentTime,.1),n.ctx.listener.positionY.setTargetAtTime(n._pos[1],Howler.ctx.currentTime,.1),n.ctx.listener.positionZ.setTargetAtTime(n._pos[2],Howler.ctx.currentTime,.1)):n.ctx.listener.setPosition(n._pos[0],n._pos[1],n._pos[2]),n)):n},HowlerGlobal.prototype.orientation=function(e,t,i,n,r,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,i="number"!=typeof i?s[2]:i,n="number"!=typeof n?s[3]:n,r="number"!=typeof r?s[4]:r,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,i,n,r,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,i,n,r,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var i=this;return i._orientation=t.orientation||[1,0,0],i._stereo=t.stereo||null,i._pos=t.pos||null,i._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},i._onstereo=t.onstereo?[{fn:t.onstereo}]:[],i._onpos=t.onpos?[{fn:t.onpos}]:[],i._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if("loaded"!==n._state)return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var r=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===i){if("number"!=typeof e)return n._stereo;n._stereo=e,n._pos=[e,0,0]}for(var o=n._getSoundIds(i),a=0;a"']/,ck=/[&<>"']/g,lk=/[<>"']|&(?!#?\w+;)/,uk=/[<>"']|&(?!#?\w+;)/g,dk={"&":"&","<":"<",">":">",'"':""","'":"'"},hk=e=>dk[e];function pk(e,t){if(t){if(sk.test(e))return e.replace(ck,hk)}else if(lk.test(e))return e.replace(uk,hk);return e}const mk=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function fk(e){return e.replace(mk,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const gk=/(^|[^\[])\^/g;function _k(e,t){e=e.source||e,t=t||"";const i={replace:(t,n)=>(n=(n=n.source||n).replace(gk,"$1"),e=e.replace(t,n),i),getRegex:()=>new RegExp(e,t)};return i}const bk=/[^\w:]/g,vk=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function yk(e,t,i){if(e){let e;try{e=decodeURIComponent(fk(i)).replace(bk,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!vk.test(i)&&(i=function(e,t){wk[" "+e]||(xk.test(e)?wk[" "+e]=e+"/":wk[" "+e]=Sk(e,"/",!0));const i=-1===(e=wk[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(Nk,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(kk,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(n){return null}return i}const wk={},xk=/^[^:]+:\/*[^/]*$/,Nk=/^([^:]+:)[\s\S]*$/,kk=/^([^:]+:\/*[^/]*)[\s\S]*$/;const Ak={exec:function(){}};function Ck(e){let t,i,n=1;for(;n{let n=!1,r=t;for(;--r>=0&&"\\"===i[r];)n=!n;return n?"|":" |"})).split(/ \|/);let n=0;if(i[0].trim()||i.shift(),i[i.length-1].trim()||i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function Dk(e,t,i,n){const r=t.href,o=t.title?pk(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;const e={type:"link",raw:i,href:r,title:o,text:a,tokens:n.inlineTokens(a,[])};return n.state.inLink=!1,e}return{type:"image",raw:i,href:r,title:o,text:pk(a)}}class Bk{constructor(e){this.options=e||ak}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Sk(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],i=function(e,t){const i=e.match(/^(\s+)(?:```)/);if(null===i)return t;const n=i[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[i]=t;return i.length>=n.length?e.slice(n.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:i}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=Sk(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const i={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let i,n,r,o,a,s,c,l,u,d,h,p,m=t[1].trim();const f=m.length>1,g={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:!1,items:[]};m=f?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`,this.options.pedantic&&(m=f?m:"[*+-]");const _=new RegExp(`^( {0,3}${m})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(p=!1,t=_.exec(e))&&!this.rules.block.hr.test(e);){if(i=t[0],e=e.substring(i.length),l=t[2].split("\n",1)[0],u=e.split("\n",1)[0],this.options.pedantic?(o=2,h=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,h=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(i+=u+"\n",e=e.substring(u.length+1),p=!0),!p){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(d=e.split("\n",1)[0],l=d,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())h+="\n"+l.slice(o);else{if(s)break;h+="\n"+l}s||l.trim()||(s=!0),i+=d+"\n",e=e.substring(d.length+1)}}g.loose||(c?g.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(h),n&&(r="[ ] "!==n[0],h=h.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:i,task:!!n,checked:r,loose:!1,text:h}),g.raw+=i}g.items[g.items.length-1].raw=i.trimRight(),g.items[g.items.length-1].text=h.trimRight(),g.raw=g.raw.trimRight();const b=g.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let i=0;for(const n of t)if("\n"===n&&(i+=1),i>1)return!0;return!1}));!g.loose&&e.length&&t&&(g.loose=!0,g.items[a].loose=!0)}return g}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):pk(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:Ok(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let i,n,r,o,a=e.align.length;for(i=0;i({text:e})));for(a=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):pk(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=Sk(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const i=e.length;let n=0,r=0;for(;r-1){const i=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,i).trim(),t[3]=""}}let i=t[2],n="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);e&&(i=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return i=i.trim(),/^$/.test(e)?i.slice(1):i.slice(1,-1)),Dk(t,{href:i?i.replace(this.rules.inline._escapes,"$1"):i,title:n?n.replace(this.rules.inline._escapes,"$1"):n},t[0],this.lexer)}}reflink(e,t){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let e=(i[2]||i[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=i[0].charAt(0);return{type:"text",raw:e,text:e}}return Dk(i,e,i[0],this.lexer)}}emStrong(e,t,i=""){let n=this.rules.inline.emStrong.lDelim.exec(e);if(!n)return;if(n[3]&&i.match(/[\p{L}\p{N}]/u))return;const r=n[1]||n[2]||"";if(!r||r&&(""===i||this.rules.inline.punctuation.exec(i))){const i=n[0].length-1;let r,o,a=i,s=0;const c="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+i);null!=(n=c.exec(t));){if(r=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!r)continue;if(o=r.length,n[3]||n[4]){a+=o;continue}if((n[5]||n[6])&&i%3&&!((i+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(i,o)%2){const t=e.slice(1,i+n.index+o);return{type:"em",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,i+n.index+o-1);return{type:"strong",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const i=/[^ ]/.test(e),n=/^ /.test(e)&&/ $/.test(e);return i&&n&&(e=e.substring(1,e.length-1)),e=pk(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const i=this.rules.inline.autolink.exec(e);if(i){let e,n;return"@"===i[2]?(e=pk(this.options.mangle?t(i[1]):i[1]),n="mailto:"+e):(e=pk(i[1]),n=e),{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let i;if(i=this.rules.inline.url.exec(e)){let e,n;if("@"===i[2])e=pk(this.options.mangle?t(i[0]):i[0]),n="mailto:"+e;else{let t;do{t=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(t!==i[0]);e=pk(i[0]),n="www."===i[1]?"http://"+e:e}return{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const i=this.rules.inline.text.exec(e);if(i){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):pk(i[0]):i[0]:pk(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:e}}}}const Lk={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Ak,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Lk.def=_k(Lk.def).replace("label",Lk._label).replace("title",Lk._title).getRegex(),Lk.bullet=/(?:[*+-]|\d{1,9}[.)])/,Lk.listItemStart=_k(/^( *)(bull) */).replace("bull",Lk.bullet).getRegex(),Lk.list=_k(Lk.list).replace(/bull/g,Lk.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Lk.def.source+")").getRegex(),Lk._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Lk._comment=/|$)/,Lk.html=_k(Lk.html,"i").replace("comment",Lk._comment).replace("tag",Lk._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Lk.paragraph=_k(Lk._paragraph).replace("hr",Lk.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lk._tag).getRegex(),Lk.blockquote=_k(Lk.blockquote).replace("paragraph",Lk.paragraph).getRegex(),Lk.normal=Ck({},Lk),Lk.gfm=Ck({},Lk.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Lk.gfm.table=_k(Lk.gfm.table).replace("hr",Lk.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lk._tag).getRegex(),Lk.gfm.paragraph=_k(Lk._paragraph).replace("hr",Lk.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Lk.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lk._tag).getRegex(),Lk.pedantic=Ck({},Lk.normal,{html:_k("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Lk._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ak,paragraph:_k(Lk.normal._paragraph).replace("hr",Lk.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Lk.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const Mk={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ak,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Ak,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}Mk._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Mk.punctuation=_k(Mk.punctuation).replace(/punctuation/g,Mk._punctuation).getRegex(),Mk.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Mk.escapedEmSt=/\\\*|\\_/g,Mk._comment=_k(Lk._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Mk.emStrong.lDelim=_k(Mk.emStrong.lDelim).replace(/punct/g,Mk._punctuation).getRegex(),Mk.emStrong.rDelimAst=_k(Mk.emStrong.rDelimAst,"g").replace(/punct/g,Mk._punctuation).getRegex(),Mk.emStrong.rDelimUnd=_k(Mk.emStrong.rDelimUnd,"g").replace(/punct/g,Mk._punctuation).getRegex(),Mk._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Mk._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Mk._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Mk.autolink=_k(Mk.autolink).replace("scheme",Mk._scheme).replace("email",Mk._email).getRegex(),Mk._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Mk.tag=_k(Mk.tag).replace("comment",Mk._comment).replace("attribute",Mk._attribute).getRegex(),Mk._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Mk._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Mk._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Mk.link=_k(Mk.link).replace("label",Mk._label).replace("href",Mk._href).replace("title",Mk._title).getRegex(),Mk.reflink=_k(Mk.reflink).replace("label",Mk._label).replace("ref",Lk._label).getRegex(),Mk.nolink=_k(Mk.nolink).replace("ref",Lk._label).getRegex(),Mk.reflinkSearch=_k(Mk.reflinkSearch,"g").replace("reflink",Mk.reflink).replace("nolink",Mk.nolink).getRegex(),Mk.normal=Ck({},Mk),Mk.pedantic=Ck({},Mk.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:_k(/^!?\[(label)\]\((.*?)\)/).replace("label",Mk._label).getRegex(),reflink:_k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Mk._label).getRegex()}),Mk.gfm=Ck({},Mk.normal,{escape:_k(Mk.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),1===i.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else{if(r=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startBlock.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(r)))n=t[t.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),o=r.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let i,n,r,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+Fk("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+Fk("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((n=>!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,c,s))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,Rk))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,Rk))){if(r=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startInline.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(i=this.tokenizer.inlineText(r,Tk))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(s=i.raw.slice(-1)),a=!0,n=t[t.length-1],n&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(i.raw.length),t.push(i);return t}}class jk{constructor(e){this.options=e||ak}code(e,t,i){const n=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,n);null!=t&&t!==e&&(i=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",n?'
    '+(i?e:pk(e,!0))+"
    \n":"
    "+(i?e:pk(e,!0))+"
    \n"}blockquote(e){return"
    \n"+e+"
    \n"}html(e){return e}heading(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(e,t,i){const n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,i){if(null===(e=yk(this.options.sanitize,this.options.baseUrl,e)))return i;let n='
    ",n}image(e,t,i){if(null===(e=yk(this.options.sanitize,this.options.baseUrl,e)))return i;let n=''+i+'":">",n}text(e){return e}}class Ik{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,i){return""+i}image(e,t,i){return""+i}br(){return""}}class Pk{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{n++,i=e+"-"+n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i}slug(e,t={}){const i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)}}class zk{constructor(e){this.options=e||ak,this.options.renderer=this.options.renderer||new jk,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ik,this.slugger=new Pk}static parse(e,t){return new zk(t).parse(e)}static parseInline(e,t){return new zk(t).parseInline(e)}parse(e,t=!0){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w="";const x=e.length;for(i=0;i0&&"paragraph"===g.tokens[0].type?(g.tokens[0].text=v+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=v+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:v}):f+=v),f+=this.parse(g.tokens,m),u+=this.renderer.listitem(f,b,_);w+=this.renderer.list(u,h,p);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(u=d.tokens?this.parseInline(d.tokens):d.text;i+1{r(e.text,e.lang,(function(t,i){if(t)return a(t);null!=i&&i!==e.text&&(e.text=i,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const i=$k.lex(e,t);return t.walkTokens&&Uk.walkTokens(i,t.walkTokens),zk.parse(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+pk(n.message+"",!0)+"
    ";throw n}}Uk.options=Uk.setOptions=function(e){var t;return Ck(Uk.defaults,e),t=Uk.defaults,ak=t,Uk},Uk.getDefaults=ok,Uk.defaults=ak,Uk.use=function(...e){const t=Ck({},...e),i=Uk.defaults.extensions||{renderers:{},childTokens:{}};let n;e.forEach((e=>{if(e.extensions&&(n=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=i.renderers?i.renderers[e.name]:null;i.renderers[e.name]=t?function(...i){let n=e.renderer.apply(this,i);return!1===n&&(n=t.apply(this,i)),n}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");i[e.level]?i[e.level].unshift(e.tokenizer):i[e.level]=[e.tokenizer],e.start&&("block"===e.level?i.startBlock?i.startBlock.push(e.start):i.startBlock=[e.start]:"inline"===e.level&&(i.startInline?i.startInline.push(e.start):i.startInline=[e.start]))}e.childTokens&&(i.childTokens[e.name]=e.childTokens)}))),e.renderer){const i=Uk.defaults.renderer||new jk;for(const t in e.renderer){const n=i[t];i[t]=(...r)=>{let o=e.renderer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.renderer=i}if(e.tokenizer){const i=Uk.defaults.tokenizer||new Bk;for(const t in e.tokenizer){const n=i[t];i[t]=(...r)=>{let o=e.tokenizer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.tokenizer=i}if(e.walkTokens){const i=Uk.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),i&&i.call(this,t)}}n&&(t.extensions=i),Uk.setOptions(t)}))},Uk.walkTokens=function(e,t){for(const i of e)switch(t.call(Uk,i),i.type){case"table":for(const e of i.header)Uk.walkTokens(e.tokens,t);for(const e of i.rows)for(const i of e)Uk.walkTokens(i.tokens,t);break;case"list":Uk.walkTokens(i.items,t);break;default:Uk.defaults.extensions&&Uk.defaults.extensions.childTokens&&Uk.defaults.extensions.childTokens[i.type]?Uk.defaults.extensions.childTokens[i.type].forEach((function(e){Uk.walkTokens(i[e],t)})):i.tokens&&Uk.walkTokens(i.tokens,t)}},Uk.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");Ek(t=Ck({},Uk.defaults,t||{}));try{const i=$k.lexInline(e,t);return t.walkTokens&&Uk.walkTokens(i,t.walkTokens),zk.parseInline(i,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+pk(i.message+"",!0)+"
    ";throw i}},Uk.Parser=zk,Uk.parser=zk.parse,Uk.Renderer=jk,Uk.TextRenderer=Ik,Uk.Lexer=$k,Uk.lexer=$k.lex,Uk.Tokenizer=Bk,Uk.Slugger=Pk,Uk.parse=Uk,zk.parse,$k.lex;export{rk as $,Fe as A,Qm as B,cf as C,dg as D,Tf as E,De as F,Wf as G,rg as H,Zf as I,mg as J,kf as K,sg as L,yg as M,Bg as N,ib as O,yf as P,Qf as Q,nb as R,Hy as S,pN as T,_N as U,Be as V,nk as W,wf as X,he as Y,X_ as Z,Kf as _,w as a,Uk as a0,de as a1,U as a2,re as b,ke as c,St as d,Ee as e,N as f,ne as g,fr as h,la as i,Ci as j,ic as k,Pe as l,nu as m,sh as n,Gg as o,Kg as p,q,Ct as r,Se as s,Jg as t,Yg as u,Pf as v,pg as w,e_ as x,Ce as y,i_ as z}; +//# sourceMappingURL=vendor.7530e44b.js.map diff --git a/assets/vendor.7530e44b.js.map b/assets/vendor.7530e44b.js.map new file mode 100644 index 00000000..2f5ef5d1 --- /dev/null +++ b/assets/vendor.7530e44b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.7530e44b.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js","../../node_modules/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/deepslate-1.18/dist/deepslate.esm.js","../../node_modules/brace/index.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/mode/yaml.js","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@giscus/react/dist/index.es.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(//)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '
    /..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StructureSet = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structure_overrides: core_1.ListNode(StructureSet)\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4064 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2032, max: 2031 }),\r\n height: core_1.NumberNode({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 9;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = core_1.NumberNode({ min: -1000000, max: 1000000 });\r\n const YRange = core_1.NumberNode({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: core_1.NumberNode(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: core_1.ObjectNode({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' }),\r\n adapt_noise: core_1.Opt(core_1.BooleanNode()),\r\n spawn_overrides: core_1.MapNode(StringNode({ enum: 'mob_category' }), core_1.ObjectNode({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', core_1.ObjectNode({\r\n structures: core_1.ListNode(core_1.ObjectNode({\r\n structure: Common_1.Tag({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: core_1.NumberNode({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n DensityFunction_1.initDensityFunctionSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n StructureSet_1.initStructureSetSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structure_overrides: Common_1.Tag({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('parameter_point', core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4064 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2032, max: 2031 }),\r\n height: core_1.NumberNode({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 10;\r\nfunction initPackMcmetaSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: core_1.ObjectNode({\r\n block: core_1.ListNode(core_1.ObjectNode({\r\n namespace: StringNode({ validator: 'regex_pattern' }),\r\n path: StringNode({ validator: 'regex_pattern' }),\r\n }))\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = core_1.NumberNode({ min: -1000000, max: 1000000 });\r\n const YRange = core_1.NumberNode({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: core_1.NumberNode(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('terrain_spline')\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: exports.DensityFunction,\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sculk_patch': {\r\n charge_count: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: core_1.NumberNode({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: core_1.NumberNode({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: core_1.NumberNode({ integer: true, min: 0, max: 8 }),\r\n catalyst_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n }),\r\n noise_router: core_1.ObjectNode({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n spawn_target: core_1.ListNode(Reference('parameter_point')),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: core_1.MapNode(StringNode({ enum: 'mob_category' }), core_1.ObjectNode({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n adapt_noise: core_1.Opt(core_1.BooleanNode()),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n project_start_to_heightmap: core_1.Opt(StringNode({ enum: 'heightmap_type' })),\r\n use_expansion_hack: core_1.BooleanNode(),\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: core_1.ListNode(core_1.ObjectNode({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n mossiness: core_1.NumberNode({ min: 0, max: 1 }),\r\n overgrown: core_1.BooleanNode(),\r\n vines: core_1.BooleanNode(),\r\n can_be_cold: core_1.BooleanNode(),\r\n replace_with_blackstone: core_1.BooleanNode(),\r\n weight: core_1.NumberNode({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StructureSet = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', core_1.ObjectNode({\r\n structures: core_1.ListNode(core_1.ObjectNode({\r\n structure: Common_1.Tag({ resource: '$worldgen/structure' }),\r\n weight: core_1.NumberNode({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n frequency_reduction_method: core_1.Opt(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n exclusion_zone: core_1.Opt(core_1.ObjectNode({\r\n other_set: StructureSet,\r\n chunk_count: core_1.NumberNode({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('world_preset', core_1.Mod(core_1.ObjectNode({\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:overworld',\r\n },\r\n settings: 'minecraft:overworld',\r\n },\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:nether',\r\n },\r\n settings: 'minecraft:nether',\r\n },\r\n },\r\n 'minecraft:the_end': {\r\n type: 'minecraft:the_end',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', core_1.Mod(core_1.ObjectNode({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n DensityFunction_1.initDensityFunctionSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n Structure_1.initStructureSchemas(schemas, collections);\r\n StructureSet_1.initStructureSetSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n WorldPreset_1.initWorldPresetSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
    \");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"
    \"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"
    \"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"
    \"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
    \");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
    \"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"\",\n \"
    \"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
    \"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
    \");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n blockquote(quote) {\n return '
    \\n' + quote + '
    \\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","$0","$1","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","equiv","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt2","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","remaining","parsed","blitBuffer","byteArray","asciiToBytes","units","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","swap16","swap32","swap64","slowToString","inspect","INSPECT_MAX_BYTES","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","bStr","runHi","pivotIndex","hint","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","dest","count1","count2","customCursor","customDest","alphabeticalCompare","makeAscendingRun","TimSort","minRun","minRunLength","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","move_comments","remove_comments","begin","item_length","CommentArray","items_length","source_index","real_source_index","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","started","parse_object","parse_array","negative","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\\","quote","process_comments","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","one","two","gap","trimRight","join_content","object_stringify","after_comma","sv","AFTER_COLON","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","collectType","compileMap","Schema","DEFAULT","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","toISOString","NodeBuffer","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","_function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","ESCAPE_SEQUENCES","7","10","11","12","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","moreIndented","lineRe","nextLF","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","displayName","isReactComponent","__f","isPureReactComponent","only","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","ReactCurrentDispatcher","readContext","performance","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cn","createRef","Fragment","isValidElement","findDOMNode","PureComponent","memo","forwardRef","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","querySelector","prepend","repo","repoId","categoryId","reactionsEnabled","emitMetadata","inputPosition","searchParams","URLSearchParams","localStorage","getItem","setItem","replaceState","removeItem","giscus","resizeHeight","scrolling","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","langPrefix","mangle","pedantic","sanitize","sanitizer","smartLists","smartypants","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","fn","_onfade","onfade","_onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_inactiveSound","soundId","_loadQueue","seek","_seek","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","linearRampToValueAtTime","_startFadeInterval","isGroup","stepLen","lastTick","_fadeTo","tick","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","events","isId","task","_drain","cnt","_panner","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","__default","loadBuffer","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","positionX","setTargetAtTime","positionY","positionZ","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","spacers","hasMultipleLineBreaks","pre","def","splitCells","align","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","itemBody","checkbox","renderers","tablecell","tablerow","listitem","marked","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"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,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eA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A,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,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AS,aAAc,CAAE/kC,OAAO,IACtD,4CAA8C,EAC9C,MAAM6zB,GAASpkB,GACTu1B,GAAgBt1B,GAChBu1B,GAAYr1B,GAClB,sBAAsBg1B,GAAaluB,IAMnC,yBALA,iBACUoC,EAAc,IAAI+a,GAAOqR,6BACjBC,gBAAgBrsB,GACvBA,GAsBXssB,iBALA,SAAoBtsB,SACVP,EAAU,IAAIsb,GAAOwR,yBACjBC,YAAY/sB,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4gB,GAAS,aAAc,CAAEltB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACTqU,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,2BCpkBRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,cAChCjY,UAAa,CAAC,CACN0lB,UAAW,8BACX1M,UAAWhtB,MAGxB,CAAExD,QAAS,iBACNsvB,SAAS,cAAe0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACzDyG,QAASH,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC7C0G,KAAMJ,GAAOtG,WAAW,CACpB4C,KAAM9C,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DuX,IAAKsD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAEzHy3B,MAAO5G,EAAU,kBACjB6G,YAAa7G,EAAU,kBACvB8G,WAAYP,GAAOnG,IAAIL,KACvBgH,MAAOR,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,CAAC,OAAQ,YAAa,WAC3D2b,WAAYT,GAAOnG,IAAImG,GAAOzgB,eAC9BmhB,iBAAkBV,GAAOnG,IAAImG,GAAOzgB,eACpCohB,OAAQX,GAAOnG,IAAImG,GAAOzgB,iBAC1B,CACAnM,QAAS,KAAO,CACZgtB,KAAM,CACF9D,KAAM,mBAEV+D,MAAO,GACPC,YAAa,QAGrBM,OAAQZ,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACvE0b,SAAUb,GAAOne,QAAQ2X,IAAcC,EAAU,yBACjDqH,aAAcd,GAAOnG,IAAImG,GAAOrgB,SAASqgB,GAAOrgB,SAAS6Z,OAEzDuH,QAASf,GAAOnG,IAAImG,GAAOtG,WAAW,CAClCsH,SAAUhB,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACzE8b,KAAMjB,GAAOnG,IAAImG,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACrF6Y,QAASgC,GAAOnG,IAAImG,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxF+b,WAAYlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,SAEzD,CAAElY,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZytB,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjB9H,SAAS,uBAAwB0G,GAAOtG,WAAW,CACvD0H,QAAS5H,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,0BAC7EmnB,WAAYrB,GAAOnG,IAAImG,GAAOtG,WAAW,CACrCsF,OAAQgB,GAAO3gB,IAAIu1B,EAAiB,CAChCn2B,WAAsD,yBAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,SAE/C8lB,GAAOhd,QAAS,CAAC,MAAO,CAAEpa,KAAM,aAChCo3B,GAAO/c,MAAO,CACXqe,+BAAgC,CAC5BjH,MAAO2F,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEoc,gBAAiBvB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACzDoa,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/B+H,yBAA0B,CACtBZ,OAAQgU,EACRnT,QAASmT,EACTlT,MAAOkT,GAEXjT,0BAA2B,CACvBlF,OAAQuD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAE3Eyc,8BAA+B,CAC3BlmB,KAAMskB,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACrE0c,GAAI7B,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEvE2c,gCAAiC,CAC7BC,QAAS/B,GAAOnG,IAAImG,GAAOrgB,SAASi1B,KAExC5S,6BAA8B,CAC1BnM,MAAO4D,EAAU,eAErBwI,yBAA0B,CACtB3F,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/ByI,kCAAmC,CAC/BC,SAAUyS,EACVxS,OAAQwS,GAEZvS,4BAA6B,CACzBpD,QAASe,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmB6a,GAAOtG,WAAW,CACxHwE,UAAWzE,EAAU,cACrB0E,SAAU1E,EAAU,kBAExB9M,OAAQqT,GAAOnG,IAAI+a,IAEvBtS,wBAAyB,CACrBjI,MAAO2F,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEhX,MAAO6xB,GAAOnG,IAAImG,GAAOne,QAAQ2X,IAAcA,IAAc,CAAE1X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAE7I25B,2BAA4B,CACxB3F,OAAQnD,EAAU,cAClB6C,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/B+I,+BAAgC,CAC5BC,OAAQzC,GAAOnG,IAAIJ,EAAU,sBAEjCiJ,iCAAkC,CAC9BhI,OAAQka,EACRjS,aAAc3C,GAAOnG,IAAIJ,EAAU,6BAEvCmJ,0BAA2B,CACvBtG,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BoJ,+BAAgC,CAC5BnI,OAAQka,EACRtY,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BqJ,gCAAiC,CAC7B9uB,SAAUgsB,GAAOnG,IAAIJ,EAAU,wBAEnCsJ,8BAA+B,CAC3BC,MAAOhD,GAAOnG,IAAImG,GAAOtG,WAAW,CAChCuJ,MAAOxJ,EAAU,cACjByJ,SAAUzJ,EAAU,cACpB0J,KAAM1J,EAAU,iBAEpB2J,MAAOpD,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,qBAEhD4J,oCAAqC,CACjCC,MAAO7J,EAAU,cACjB+C,WAAY/C,EAAU,cACtB6C,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/Bob,+BAAgC,CAC5BvY,KAAM0D,GAAOnG,IAAIJ,EAAU,mBAC3BzlB,SAAUgsB,GAAOnG,IAAIJ,EAAU,wBAEnC8J,+BAAgC,CAC5BC,oBAAqB/J,EAAU,cAC/BsI,QAAS/B,GAAOnG,IAAImG,GAAOrgB,SAASi1B,KAExCnR,uBAAwB,CACpBhF,SAAUhF,EAAU,sBACpB0E,SAAU1E,EAAU,eAExBmwB,6BAA8B,CAC1BC,UAAWjV,EACXkV,UAAWlV,GAEflR,qBAAsB,CAClB1vB,SAAUgsB,GAAOnG,IAAIJ,EAAU,wBAEnCkK,0BAA2B,CACvBlF,SAAUhF,EAAU,sBACpBmK,QAAS5D,GAAOnG,IAAIJ,EAAU,uBAC9BoK,OAAQ7D,GAAOnG,IAAIJ,EAAU,wBAEjCqK,yBAA0B,CACtBzJ,MAAO2F,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEhX,MAAO6xB,GAAOnG,IAAImG,GAAOne,QAAQ2X,IAAcA,IAAc,CAAE1X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eACzI0zB,KAAM0D,GAAOnG,IAAIJ,EAAU,mBAC3BzlB,SAAUgsB,GAAOnG,IAAIJ,EAAU,wBAEnCqb,4CAA6C,CACzCC,WAAYvb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEpE4e,+BAAgC,CAC5BtB,OAAQzC,GAAOnG,IAAIJ,EAAU,qBAC7BiB,OAAQka,GAEZI,0CAA2C,CACvC1Y,KAAM0D,GAAOnG,IAAIJ,EAAU,mBAC3BiB,OAAQka,GAEZ5Q,iCAAkC,CAC9BtJ,OAAQka,EACRjS,aAAc3C,GAAOnG,IAAIJ,EAAU,6BAEvCwK,4BAA6B,CACzBC,OAAQ1K,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAEhEif,yBAA0B,CACtBpwB,SAAUgsB,GAAOnG,IAAIJ,EAAU,wBAEnC4K,6BAA8B,CAC1BhK,MAAO2F,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE1Emf,0BAA2B,CACvBhI,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/B8K,4BAA6B,CACzB7J,OAAQka,GAEZpQ,wBAAyB,CACrB9J,OAAQka,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,gBAAiB3b,EAAU,eAE/B4b,4CAA6C,CACzC3a,OAAQsF,GAAOnG,IAAIJ,EAAU,qBAC7B6C,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BgL,2BAA4B,CACxBhG,SAAUhF,EAAU,iBAExBiL,uBAAwB,CACpBpI,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BswB,uBAAwB,CACpBztB,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BkL,2BAA4B,CACxBxC,SAAUnC,GAAOnG,IAAIJ,EAAU,qBAC/B6C,KAAM0D,GAAOnG,IAAIJ,EAAU,oBAE/BmL,4BAA6B,CACzB5wB,SAAUylB,EAAU,yBAG7B,CAAEzvB,QAAS,gBACf,CAAEwU,SAAU,YAAaxU,QAAS,gCC3OzCmM,OAAOsC,eAAeosB,GAAS,aAAc,CAAE14B,OAAO,6BAC3B,EAC3B,MAAM6zB,GAASpkB,uBACf,SAA0B8I,EAASO,MACNR,UAAU/S,UAAK,EAAWgT,SAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C6f,EAAM,CAACn8B,EAAQkX,EAAKnN,IAAQstB,GAAOrgB,SAASqgB,GAAOxd,WAAW,CAAE3C,IAAAA,EAAKnN,IAAAA,IAAQ,CAAEoN,UAAWnX,EAAQoX,UAAWpX,IAC7Go8B,EAAU/E,GAAOze,WAAW,CAC9B,CACIvY,KAAM,QACNoJ,MAAQ5E,GAAmB,iBAANA,GAAkBA,EAAEiM,WAAW,KACpDhF,KAAM+kB,IACNhY,OAAShU,GAAmB,iBAANA,EAAiB,IAAIA,IAAM,MAErD,CACIxE,KAAM,YACNoJ,MAAQ5E,GAAmB,iBAANA,EACrBiH,KAAM+kB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAC1D3D,OAAShU,GAAmB,iBAANA,EAAiBA,EAAEX,QAAQ,KAAM,IAAM,KAElE,CAAEotB,cAAe,cACZX,SAAS,QAAS0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACnDkH,OAAQZ,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvE6f,iBAAkBhF,GAAOnG,IAAImG,GAAOzgB,eACpC0lB,UAAWjF,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,eACzCogB,SAAUlF,GAAOnG,IAAImG,GAAOne,QAAQ2X,IAAcuL,IAClDI,SAAUnF,GAAOnG,IAAImG,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACnDhe,KAAMopB,EAAI,MAAQ,IAClBjD,GAAIiD,EAAI,MAAQ,IAChBM,SAAUpF,GAAOnG,IAAImG,GAAOtG,WAAW,CACnClO,OAAQsZ,EAAI,GACZO,KAAM7L,EAAW,CAAE1U,KAAM,SACzBwgB,MAAOtF,GAAOuF,WAAW,CAAEhjB,OAAQ,WAAa,EAAG,KAAM,MACzDijB,QAASxF,GAAOnG,IAAImG,GAAOzgB,kBAE/BkmB,MAAOzF,GAAOnG,IAAImG,GAAOzgB,eACzBmmB,MAAO1F,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,cAAgBkb,GAAOtG,WAAW,CACvEiM,QAASZ,EACTa,GAAI5F,GAAOnG,IAAIiL,EAAI,IACnBe,SAAU7F,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,eACxCsgB,SAAUpF,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KAClD4jB,UAAW9F,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,SAExD,CAAElY,QAAS,oBACdm2B,QAASH,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,qBAAuBkb,GAAOtG,WAAW,CAC3F0L,SAAUN,EAAI,GACdiB,YAAajB,EAAI,MAAQ,IACzBkB,MAAOlB,EAAI,KAAO,IACnB,CAAE96B,QAAS,qBACdi8B,UAAWjG,GAAOnG,IAAImG,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACpDc,UAAWwF,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,0BAA4Bkb,GAAOxd,cAChF9I,MAAO8f,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAC5D,CAAEnb,QAAS,sBACf,CAAEA,QAAS,UAAY,CACtBoJ,QAAS,KAAO,CACZwtB,OAAQ,2BACRsE,SAAU,CACNgB,OAAQ,0CCzDxB/vB,OAAOsC,eAAe0tB,GAAS,aAAc,CAAEh6B,OAAO,uCACjB,EACrC,MAAM6zB,GAASpkB,iCACf,SAAoC8I,EAASO,SACnCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,mBAAoB0G,GAAO3gB,IAAI2gB,GAAOze,WAAW,CAC9D,CACIvY,KAAM,WACNoJ,MAAQ5E,QAAqB,IAAfA,EAAE44B,SAChB3xB,KAAMurB,GAAOtG,WAAW,CACpB0M,SAAUpG,GAAOne,QAAQ2X,IAAcC,EAAU,oBAErDjY,OAAShU,IAAO,CAAE44B,SAAU,CAAE,GAAI,OAEtC,CACIp9B,KAAM,YACNoJ,MAAQ5E,QAAsB,IAAhBA,EAAE64B,UAChB5xB,KAAMurB,GAAOtG,WAAW,CACpB2M,UAAWrG,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACzC4M,KAAMtG,GAAOnG,IAAIJ,EAAU,wBAC3BlM,MAAOkM,EAAU,sBAGzBjY,OAAShU,IAAO,CAAE64B,UAAW,CAAEC,KAAM,GAAI/Y,MAAO,QAErD,CAAEvjB,QAAS,qBAAuB,CACjCoJ,QAAS,KAAO,CACZgzB,SAAU,CACN,GAAI,CACA1sB,MAAO,qCAKjB6sB,EAAkB,CACpB7sB,MAAO8f,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3DjZ,EAAG8zB,GAAOnG,IAAImG,GAAOuF,WAAW,CAAErjB,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QACtEvW,EAAGg0B,GAAOnG,IAAImG,GAAOuF,WAAW,CAAErjB,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QACtEikB,OAAQxG,GAAOnG,IAAImG,GAAOzgB,kBAEtB+Z,SAAS,gBAAiB0G,GAAOze,WAAW,CAChD,CACIvY,KAAM,SACNyL,KAAMurB,GAAOtG,WAAW6M,GACxB/kB,OAAShU,GAAM1B,MAAMC,QAAQyB,IAAMA,EAAE7E,OAAS,EAAI6E,EAAE,GAAM,IAE9D,CACIxE,KAAM,OACNyL,KAAMurB,GAAOrgB,SAASqgB,GAAOtG,WAAWpa,OACjCinB,GADiC,CAEpCE,OAAQzG,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,OAC5D,CAAE7V,QAAS,mBACdwX,OAAShU,GAAM,CAAC4R,GAAEqnB,OAAQ,GAAMj5B,MAErC,CAAExD,QAAS,qBACNsvB,SAAS,sBAAuB0G,GAAOze,WAAW,CACtD,CACIvY,KAAM,SACN8X,YACA1O,MAAO,KAAM,EACbqC,KAAMurB,GAAOne,QAAQ2X,IAAcA,KACnChY,OAAShU,GAAmB,iBAANA,GAAkB1B,MAAMC,QAAQyB,MAAAA,OAA6B,EAASA,EAAEk5B,KAAOl5B,EAAEk5B,GAAG/9B,OAAS,EAAI6E,EAAEk5B,GAAG,GAAM,IAEtI,CACI19B,KAAM,KACNoJ,MAAQ5E,GAAmB,iBAANA,QAAmE,kBAAnB,EAASA,EAAEk5B,IAChFjyB,KAAMurB,GAAOtG,WAAW,CACpBgN,GAAI1G,GAAOrgB,SAAS8Z,EAAU,0BAElCjY,OAAShU,IAAO,CAAEk5B,GAAI,CAACl5B,MAAAA,EAA6BA,EAAI,QAE7D,CAAExD,QAAS,0BCxElBmM,OAAOsC,eAAekuB,GAAS,aAAc,CAAEx6B,OAAO,8BAC1B,EAC5B,MAAMy6B,GAAUhrB,GACVirB,GAAoBhrB,wBAC1B,SAA2B6I,EAASO,MACd6hB,2BAA2BpiB,EAASO,MAC9C8hB,iBAAiBriB,EAASO,kCCN/BxM,iBAAwB,aAAc,CAAEtM,OAAO,wBAC1BoS,cAAsBA,gBAAwBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,gBAAwBA,sBAAyB,QACjPgb,EAAS3d,0BACgB,CAC3B81B,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,iCACZ2X,MAAO,EACP/W,OAAQ,4BAEmB,CAC3BpjC,KAAM,sBACNyiC,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,uBACAC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACP3+B,WACA2e,KAAM,EACNzZ,OAAQ,GAEZ05B,aAAc,CACV5+B,WACA2e,KAAM,EACNzZ,OAAQ,IAGhB25B,cAAe,CACX9Z,KAAM,mBAEV+Z,cAAe,CACX/Z,KAAM,kBACNC,WAAY,CACR/D,MAAO,oCAIQnR,EAASO,SAC1BuU,EAAaD,EAAO3U,WAAWlT,UAAK,EAAWuT,GAC/CwU,EAAYF,EAAO9U,UAAU/S,UAAK,EAAWgT,KAC3C4U,SAAS,cAAeC,EAAOla,IAAIka,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DyU,WAAYL,EAAOM,IAAIN,EAAO1X,QAAQ2X,IAAcA,IAAc,CAAE1X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eAC/I,CAAEoB,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZumB,KAAM,yBAGNL,SAAS,cAAeC,EAAOla,IAAIka,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DyU,WAAYL,EAAOM,IAAIN,EAAO1X,QAAQ2X,IAAcA,OACrD,CAAExvB,QAAS,gBAAkB,CAC5BoJ,QAAS,KAAO,CACZumB,KAAM,kBACNC,WAAY,CACR/D,MAAS,YAIbyD,SAAS,YAAaC,EAAOla,IAAIka,EAAO5Z,SAAS4Z,EAAO/W,WAAW,CAAEN,SAAS,IAAS,CAAEpC,UAAW,EAAGC,UAAW,IAAM,CAC5H3M,QAAS,IAAM,CAAC,EAAG,EAAG,YAEpBg3C,EAAUloC,GAAYqX,EAAOM,IAAIN,EAAOhY,WAAW,CACrD,CACIvY,KAAM,SACNyL,KAAM8kB,EAAO/W,WAAW,CAAEN,QAAAA,IAC1BV,OAAShU,QAAYyM,EAAIiC,cAAiB,IAAN1O,EAAkB,EAAmE,UAAxC,UAAXA,EAAEqS,WAAwB,IAAP5F,EAAgBA,EAAKzM,EAAEkF,WAAwB,IAAPwJ,EAAgBA,EAAK,IAE1J,CACIlT,KAAM,SACNyL,KAAM8kB,EAAOG,WAAW,CACpB7Z,IAAK0Z,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,QAAAA,KACpCxP,IAAK6mB,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,QAAAA,MACrC,CAAElY,QAAS,UACdwX,OAAShU,IAAO,CACZqS,IAAKrS,MAAAA,EAA6BA,EAAI,EACtCkF,IAAKlF,MAAAA,EAA6BA,EAAI,UAI1C8rB,SAAS,aAAc8wB,GAAO,MAC9B9wB,SAAS,eAAgB8wB,OACzB9wB,SAAS,YAAaC,EAAOhY,WAAW,CAC5C,CACIvY,KAAM,SACNyL,KAAM8kB,EAAOG,WAAW,CACpB7Z,IAAK0Z,EAAOM,IAAIJ,EAAU,oBAC1B/mB,IAAK6mB,EAAOM,IAAIJ,EAAU,uBAGlC,CACIzwB,KAAM,SACNyL,KAAM8kB,EAAO/W,WAAW,CAAEN,SAAS,MAExC,CAAElY,QAAS,iBACRqgD,EAAiB,CAACllC,EAAMmlC,EAAYC,EAAYC,EAAeC,EAAezgD,EAASyW,SACrFiqC,EAAc,GACdD,UACO7oC,KAAKnB,EAAMgqC,IAAgB/7C,eAClBlD,GAAK+tB,EAAOla,IAAIoB,EAAMgqC,GAAej/C,GAAI,CACjDiT,gBAA6C,IAA5BjL,EAAK5K,KAAK,QAAQsR,iBAIzCyqC,EAAWprB,EAAOG,WAAWta,GAC/BpW,KAAMuwB,EAAOla,IAAIka,EAAOM,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAAA,MAAY,CAClFwb,OAAQ,KAAM,KAEjBpH,EAAOvW,QAAS,CAAC,CAAEpa,KAAM,UACzB2wB,EAAOtW,MAAOxC,GACZiqC,GACJ,CAAE1gD,QAAAA,EAAS6Z,sBAAsB,IAC9B3C,EAAU,CAAC,CACTlY,KAAMshD,EACN71C,KAAMgM,EAAM+pC,GAAeD,YAE/BE,KACQ7hD,KAAK,CACTI,KAAM,SACN8X,YACArM,KAAMkwC,WAGP/iC,KAAKnB,GAAO/R,eACP9F,KAAK,CACTI,KAAMwC,EACN4G,MAAQ5E,QACAyM,KACS,cAAwE,UAAlDzM,MAAAA,OAA6B,EAASA,EAAExE,YAAyB,IAAPiR,OAAgB,EAASA,EAAGpN,QAAQ,cAAe,OACnIrB,SACF,QACLoW,EAAOpU,EAAI2I,OAAOyL,KAAKpU,GAAK,SACd,iBAANA,IAAiF,kBAA1B,EAASoU,EAAKjZ,SAAgF,kBAA1B,EAASiZ,EAAKjZ,SAA2E,uBAAtB,EAASiZ,EAAK,MAE9NnN,KAAMkwC,EACNnjC,OAAShU,IAAO,CAAExE,KAAMwC,SAGzB+tB,EAAOhY,WAAWL,EAAS,CAAElX,QAAAA,EAASiwB,cAAe,GAAGjwB,cAE3DsvB,SAAS,kBAAmB+wB,EAAe,4BAA6B,SAAU,QAAS,qBAAsB,oBAAqB,kBAAmB,CAC7JM,qBAAsB,CAClBx+C,MAAOotB,EAAO/W,cAElBooC,oBAAqB,CACjB/qC,IAAK4Z,EAAU,mBACf/mB,IAAK+mB,EAAU,oBAEnBoxB,qBAAsB,CAClBrjD,EAAGiyB,EAAU,mBACbzrB,EAAGyrB,EAAU,oBAEjBqxB,kBAAmB,CACfl2C,OAAQ6kB,EAAU,4BAClB2V,MAAO5V,EAAW,CAAExU,UAAW,cAC/BghB,MAAOzM,EAAOM,IAAIN,EAAO/W,oBAGzB8W,SAAS,2BAA4B+wB,EAAe,2BAA4B,SAAU,SAAU,oBAAqB,KAAM,iBAAkB,CACrJvU,kBAAmB,CACfjmC,KAAM2pB,EAAW,CAAExU,UAAW,SAAUvK,OAAQ,CAAEqxB,OAAQ,WAAY9iC,KAAM,WAAYqmC,eAAe,MAE3G0b,oBAAqB,CACjBn2C,OAAQ2kB,EAAOla,IAAIma,EAAW,CAAE1U,KAAM,kBAAoB,CAAE1R,QAAS,IAAM,eAG3EkmB,SAAS,eAAgB+wB,EAAe,yBAA0B,SAAU,SAAU,oBAAqB,KAAM,eAAgB,CACrIW,oBAAqB,CACjBr+B,OAAQ6M,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAEhE4lC,oBAAqB,CACjBn2C,OAAQ2kB,EAAOla,IAAIma,EAAW,CAAE1U,KAAM,gBAAkB,CAAE1R,QAAS,IAAM,6BAGxDwM,GAAWyqC,EAAe,sBAAuB,SAAU,QAAS,qBAAsB,KAAM,iBAAkB,CACvIM,qBAAsB,CAClBx+C,MAAOotB,EAAO/W,WAAW5C,IAE7BgrC,oBAAqB,CACjBz+C,MAAOotB,EAAOG,WAAW,CACrBuxB,cAAe1xB,EAAO/W,WAAW5C,GACjCsrC,cAAe3xB,EAAO/W,WAAW5C,MAGzCurC,2BAA4B,CACxBh/C,MAAOotB,EAAOG,WAAW,CACrB7Z,IAAK0Z,EAAO/W,aACZ9P,IAAK6mB,EAAO/W,aACZ4oC,KAAM7xB,EAAO/W,aACb6oC,UAAW9xB,EAAO/W,gBAG1B8oC,sBAAuB,CACnBn/C,MAAOotB,EAAOG,WAAW,CACrB7Z,IAAK0Z,EAAO/W,aACZ9P,IAAK6mB,EAAO/W,aACZ+oC,QAAShyB,EAAO/W,oBAIpB8W,SAAS,iBAAkB/a,EAAQitC,+BACpB5rC,GAAWyqC,EAAe,oBAAqB,SAAU,QAAS,qBAAsB,KAAM,eAAgB,CACjIM,qBAAsB,CAClBx+C,MAAOotB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,KAEjDgrC,oBAAqB,CACjBz+C,MAAOotB,EAAOG,WAAW,CACrBuxB,cAAe1xB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,IACrD6rC,cAAelyB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7D8rC,6BAA8B,CAC1Bv/C,MAAOotB,EAAOG,WAAW,CACrBuxB,cAAe1xB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,IACrD6rC,cAAelyB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7D+rC,oBAAqB,CACjBx/C,MAAOotB,EAAOG,WAAW,CACrBuxB,cAAe1xB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,IACrD6rC,cAAelyB,EAAO/W,WAAWpD,GAAE8C,SAAS,GAAStC,IACrD+M,OAAQ8M,EAAU,uBAItBH,SAAS,eAAgB/a,EAAQqtC,iBACjCtyB,SAAS,kBAAmBC,EAAOhY,WAAW,CAAC,WAAY,eAAgB,aAAapO,SAAU,CACtGnK,KAAMV,EACN8J,cAA6D,kBAAnB,EAAS5E,EAAElF,IACrDkZ,eAAmBvH,EAAIiC,EAAIC,QAAY,EAAG7T,GAAqI,UAA9C,UAAjD,UAAhBkF,EAAE8wB,gBAA6B,IAAPrkB,EAAgBA,EAAKzM,EAAEq+C,oBAAiC,IAAP3vC,EAAgBA,EAAK1O,EAAEs+C,iBAA8B,IAAP3vC,EAAgBA,EAAK,IAC5M1H,KAAM8kB,EAAOG,WAAW,EACnBpxB,GAAIixB,EAAO/W,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,aAE5D,CAAE1I,QAAS,uBACRsvB,SAAS,kBAAmB+wB,EAAe,uBAAwB,SAAU,QAAS,qBAAsB,KAAM,kBAAmB,CACzIM,qBAAsB,CAClBx+C,MAAOstB,EAAU,oBAErBmxB,oBAAqB,CACjBK,cAAexxB,EAAU,mBACzBgyB,cAAehyB,EAAU,oBAE7BiyB,6BAA8B,CAC1BT,cAAexxB,EAAU,mBACzBgyB,cAAehyB,EAAU,mBACzBmiB,MAAOriB,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9DksC,kCAAmC,CAC/Bd,cAAexxB,EAAU,mBACzBgyB,cAAehyB,EAAU,mBACzBmiB,MAAOriB,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9DyrC,sBAAuB,CACnBL,cAAexxB,EAAU,mBACzBgyB,cAAehyB,EAAU,mBACzB8xB,QAAShyB,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,0BAGhC,CAAC8pC,EAAmBxyB,EAAW,CAAE1U,KAAM,qBAAwB,CACpFoV,wBAAyB,CACrBC,MAAOZ,EAAO5Z,SAAS8Z,EAAU,eAErCW,iCAAkC,CAC9BC,MAAOb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DmV,WAAYf,EAAO1X,QAAQ2X,IAAcA,IAAc,CAAE1X,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,eAEvI2xB,qCAAsC,CAClCC,UAAWf,EAAU,4BAEzBgB,8BAA+B,CAC3BC,OAAQsxB,EACRxxB,UAAWf,EAAU,qBAEzBkB,0BAA2B,CACvBD,OAAQsxB,EACRpxB,OAAQrB,EAAO1X,QAAQ2X,EAAW,CAAExU,UAAW,cAAgByU,EAAU,eAE7EqB,qBAAsB,CAClBC,KAAMtB,EAAU,cAEpBuB,6BAA8B,CAC1BC,QAAS1B,EAAOM,IAAIN,EAAOha,gBAE/B2b,2BAA4B,CACxBC,QAAS5B,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,KACjDkZ,QAAS7B,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,KACjDmZ,QAAS9B,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,KACjDsY,UAAWf,EAAU,uBAEzB6B,uBAAwB,CACpBd,UAAWf,EAAU,mBAEzB8B,0BAA2B,CACvBC,OAAQjC,EAAO/W,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE7C+oB,uCAAwC,CACpCD,OAAQjC,EAAO/W,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzCgpB,mBAAoBnC,EAAO/W,cAE/BmZ,sBAAuB,CACnB9rB,KAAM2pB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE9DyW,wBAAyB,CACrBC,YAAarC,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjE2W,QAASvC,EAAO5Z,SAAS4Z,EAAO/W,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,MAE9DqpB,uBAAwB,CACpB5vB,MAAOstB,EAAU,aACjBuC,OAAQzC,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,MAEpD+pC,wBAAyB,CACrB9/C,MAAOstB,EAAU,mBACjByyB,MAAOzyB,EAAU,cAErBwC,0BAA2B,CACvBC,QAAS3C,EAAOM,IAAIN,EAAOha,eAC3B4c,WAAY5C,EAAOM,IAAIN,EAAOha,kCAGd,CAAC8hB,EAAY8qB,EAAiB3yB,EAAW,CAAE1U,KAAM,gBAAkBknC,EAAmBxyB,EAAW,CAAE1U,KAAM,2BACvHrE,EAAQ,CACV+oB,wBAAyB,CACrB3N,YAAarC,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjEskB,QAASjQ,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,qCAC7EwvB,WAAYnQ,EAAOla,IAAIka,EAAOG,WAAW,CACrCiQ,gBAAiBpQ,EAAOla,IAAIka,EAAO/W,aAAc,CAC7C/D,WAAsD,kCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,QAEhD0vB,MAAOrQ,EAAOla,IAAIka,EAAO/W,aAAc,CACnC/D,WAAsD,wCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,QAEhD2vB,YAAatQ,EAAOla,IAAIka,EAAO/W,aAAc,CACzC/D,WAAsD,wCAArCjL,EAAKsF,MAAMlQ,KAAK,WAAWsR,UAEhD,CACAuE,WAAgD,wBAA/BjL,EAAK5K,KAAK,WAAWsR,SAG9C4vB,sBAAuB,CACnBnd,OAAQw/B,GAEZpiB,qBAAsB,CAClBpd,OAAQ8M,EAAU,gBAClBuQ,IAAKzQ,EAAO5Z,SAAS4Z,EAAOG,WAAW,CACnC/M,OAAQ6M,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,CAAEyrB,OAAQ,cAAez2B,KAAM,CAAC,MAAO,MAAO,MAAO,CAAE5K,KAAM,eAC7HgM,OAAQ4kB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,oBAChE0rB,GAAI1Q,EAAW,CAAE1U,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAE9a,QAAS,oBAElBmgC,uBAAwB,CACpB9P,MAAOb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DmV,WAAYf,EAAO5Z,SAAS6Z,EAAW,CAAExU,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,MAAO,CAAE7U,KAAM,eAEhHwhC,6BAA8B,CAC1BzN,aAAcpD,EAAOM,IAAIN,EAAO5Z,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBAEjGklB,gCAAiC,CAC7BzN,OAAQnD,EAAU,mBAClB6Q,SAAU/Q,EAAOM,IAAIN,EAAOha,gBAEhCgrB,4BAA6B,CACzBC,YAAajR,EAAOM,IAAIL,EAAW,CAAE1U,KAAM,iBAC3C2lB,WAAYlR,EAAOM,IAAIL,EAAW,CAAE1U,KAAM,oBAC1C4lB,KAAMnR,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,KAC9CyoB,cAAepR,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,KACvD0oB,qBAAsBrR,EAAOM,IAAIN,EAAOha,gBAE5CsrB,6BAA8B,CAC1BnQ,OAAQsxB,GAEZlhB,wBAAyB,CACrBC,MAAOtR,EAAU,cAErBuR,4BAA6B,CACzBzhB,MAAOkQ,EAAU,mBACjBsR,MAAOxR,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,MAEnD+oB,2BAA4B,CACxBC,UAAW3R,EAAO5Z,SAAS8Z,EAAU,wBAEzC2yB,+BAAgC,CAC5BC,SAAU9yB,EAAO5Z,SAAS4Z,EAAOG,WAAW,CACxC8S,QAAShT,EAAW,CAAE1U,KAAM,mBAC5B3C,MAAOqX,EAAW,CAAE1U,KAAM,iBAE9BwnC,OAAQ/yB,EAAOM,IAAIN,EAAOha,gBAE9B4rB,yBAA0B,CACtB9sB,QAASkb,EAAO5Z,SAAS8Z,EAAU,gBAEvC2R,sBAAuB,CACnB7hB,MAAOkQ,EAAU,mBACjBvb,IAAKqb,EAAOM,IAAIN,EAAOha,gBAE3B8rB,uBAAwB,CACpB5I,OAAQhJ,EAAU,mBAClBvb,IAAKqb,EAAOM,IAAIN,EAAOha,gBAE3BgtC,6BAA8B,CAC1B5vB,aAAcpD,EAAO1X,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoBsU,EAAU,oBAC/Gvb,IAAKqb,EAAOM,IAAIN,EAAOha,gBAE3B+rB,2BAA4B,CACxBz7B,KAAM2pB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1DomB,KAAMhS,EAAOM,IAAIN,EAAO/W,WAAW,CAAEN,SAAS,MAElDspB,qBAAsB,CAClB9Q,OAAQnB,EAAOM,IAAImyB,GACnBvgB,KAAMlS,EAAO5Z,SAAS8Z,EAAU,mBAChC5sB,QAAS0sB,EAAOM,IAAIN,EAAOha,gBAE/BmsB,qBAAsB,CAClBhR,OAAQnB,EAAOM,IAAImyB,GACnBn8C,KAAM0pB,EAAOM,IAAIJ,EAAU,oBAE/BkS,oBAAqB,CACjBpP,IAAK/C,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,sBAExEotB,4BAA6B,CACzB3M,QAAS1F,EAAOM,IAAIN,EAAO5Z,SAAS4Z,EAAOG,WAAW,CAClD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC1DgZ,SAAU1E,EAAU,yBAI1Btb,EAAM,YACAjE,IAAI,sBAAsBxL,eAC9BhG,GAAK0W,OAAKqB,EAAM/X,IAAO24B,MAExBljB,0BAEqB1J,GAAS8kB,EAAOsa,eAAera,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAAwB1Q,EAAM,CAC7Iq/B,sBAAuBv1B,EAAQw1B,qBAC/BC,uBAAwB,CACpBnkC,KAAM,uBACN6hC,WAAW,EACXC,SAAS,EACTsC,QAAQ,EACRrC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACf+B,WAAY,KACZ9B,eAAgB,IAChBnT,QAAS,uBACToT,WAAY,8BACZ2X,MAAO,EACP/W,OAAQ,KAEZkB,oBAAqB,CACjBtkC,KAAM,oBACN6hC,WAAW,EACXC,SAAS,EACTsC,QAAQ,EACRrC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACf+B,WAAY,IACZ9B,eAAgB,IAChBnT,QAAS,oBACToT,WAAY,2BACZ2X,MAAO,EACP/W,OAAQ,8BAGgBx+B,GAAS8kB,EAAOsa,eAAera,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAAiC1Q,EAAM,CACtJq/B,sBAAuBv1B,EAAQ61B,qBAC/BC,mBAAoB,CAChBxkC,KAAM,mBACNyiC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,eAAgB,WAChBC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdC,UAAW,CACP3+B,OAAQ,IACR2e,KAAM,EACNzZ,OAAQ,GAEZ05B,aAAc,CACV5+B,OAAQ,IACR2e,KAAM,EACNzZ,YAGR25B,cAAe,CACX9Z,KAAM,wBAEV+Z,cAAe,CACX/Z,KAAM,iBACNC,WAAY,CACR/D,MAAO,OAInBye,gBAAiB,CACbzkC,KAAM,gBACNyiC,0BACAC,2BACAC,UAAW,EACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,eAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACvByB,uBAAuB,EACvBxB,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACP3+B,YACA2e,KAAM,GACNzZ,YAEJ05B,aAAc,CACV5+B,WACA2e,KAAM,EACNzZ,OAAQ,IAGhB25B,cAAe,CACX9Z,KAAM,uBAEV+Z,cAAe,CACX/Z,KAAM,kBAGd6a,sBAAuB,CACnB3kC,KAAM,sBACNyiC,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,uBACAC,uBAAuB,EACvBC,uBAAuB,EACvB2B,WAAW,EACX1B,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACP3+B,WACA2e,KAAM,EACNzZ,OAAQ,GAEZ05B,aAAc,CACV5+B,WACA2e,KAAM,EACNzZ,OAAQ,IAGhB25B,cAAe,CACX9Z,KAAM,mBAEV+Z,cAAe,CACX/Z,KAAM,kBACNC,WAAY,CACR/D,MAAO,OAInB6e,kBAAmB,CACf7kC,KAAM,kBACNyiC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,eAAgB,WAChBC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdC,UAAW,CACP3+B,OAAQ,IACR2e,KAAM,EACNzZ,OAAQ,GAEZ05B,aAAc,CACV5+B,OAAQ,IACR2e,KAAM,EACNzZ,YAGR25B,cAAe,CACX9Z,KAAM,mBAEV+Z,cAAe,CACX/Z,KAAM,kBACNC,WAAY,CACR/D,MAAO,OAInB8e,6BAA8B,CAC1B9kC,KAAM,6BACNyiC,0BACAC,2BACAC,UAAW,EACXC,wBAAwB,EACxBwX,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBzX,MAAO,CACHsX,MAAO,EACP/W,OAAQ,IACRN,eAAgB,EAChBC,eAAgB,EAChBC,uBAAuB,EACvBC,uBAAuB,EACvByB,uBAAuB,EACvBxB,gBAAiB,EACjBC,cAAe,EACfE,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdC,UAAW,CACP3+B,YACA2e,KAAM,GACNzZ,YAEJ05B,aAAc,CACV5+B,WACA2e,KAAM,EACNzZ,OAAQ,IAGhB25B,cAAe,CACX9Z,KAAM,mBAEV+Z,cAAe,CACX/Z,KAAM,kBACNC,WAAY,CACR/D,MAAO,yBCltB3B1f,OAAOsC,eAAeuuB,GAAS,aAAc,CAAE76B,OAAO,iCACvB,EAC/B,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,2BACjB,SAA8B6I,EAASO,SAC7BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,YAAa0G,GAAOiH,aAAaxN,EAAU,aAAc,CAAEQ,cAAe,iBACnFX,SAAS,YAAa0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACvDwN,UAAW1N,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC9D6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,eACzBo3B,GAAO/c,MAAOgd,GAASkH,kBACzB,CAAE3oB,SAAU,YAAaxU,QAAS,cAAgB,CACjDoJ,QAAS,KAAO,CACZ8zB,UAAW,8BACXxM,OAAQ,uBCfpBvkB,OAAOsC,eAAe68B,GAAS,aAAc,CAAEnpC,OAAO,iCACvB,EAC/B,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,2BACjB,SAA8B6I,EAASO,SAC7BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CswB,EAAY9gC,GAASurB,GAAO3gB,IAAI5K,EAAM,CACxCgK,gBAA+C,IAA9BjL,EAAK5K,KAAK,UAAUsR,UAEjCof,SAAS,YAAa0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACvD1wB,KAAMi3B,GAASuV,qBAAqB/b,EAAU,mBAC9Cgc,UAAWzV,GAAOtG,WAAW,CACzB1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXyyB,kBAAmB,CACfnK,KAAMvL,GAAOxd,WAAW,CAAEN,SAAS,IACnCyzB,SAAU1V,GAAS2V,qBAAqBnc,EAAU,mBAClDoc,aAAc7V,GAAOtG,WAAW,CAC5B1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,4BACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACX6yB,kBAAmB,CACf/Y,MAAOvD,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAE/D4wB,wBAAyB,CACrBxK,KAAMvL,GAAOxd,WAAW,CAAEN,SAAS,IACnC8zB,OAAQhW,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,CAAC,aACvCmxB,eAAgBV,EAAS9b,EAAU,0BACnCyc,kBAAmBX,EAAS9b,EAAU,0BACtC0c,eAAgBZ,EAAS9b,EAAU,0BACnC2c,gBAAiBb,EAAS9b,EAAU,0BACpC4c,OAAQd,EAASvV,GAAO3gB,IAAI2gB,GAAOrgB,SAAS8Z,EAAU,oBAAqB,CACvErmB,QAAS,IAAM,CAAC,CACR2pB,MAAO,yBAIvBuZ,yBAA0B,CACtBtQ,MAAOhG,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClE2jC,OAAQrW,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAEhFgvB,oBAAqB,CACjB5I,KAAMvL,GAAOxd,WAAW,CAAEN,SAAS,KAEvCq0B,4BAA6B,CACzBhL,KAAMvL,GAAOxd,WAAW,CAAEN,SAAS,IACnCs0B,aAAcxW,GAAOnG,IAAImG,GAAOzgB,eAChCk3B,wBAAyBzW,GAAOnG,IAAImG,GAAOzgB,kBAGpD,CAAEf,SAAU,YAAaqF,sBAAsB,KAEtD6yB,iBAAkB,CACdf,SAAU3V,GAAOtG,WAAW,CACxBqD,MAAOiD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtEwxB,MAAO3W,GAAOnG,IAAImG,GAAOzgB,eACzBq3B,SAAU5W,GAAOnG,IAAImG,GAAOzgB,eAC5Bs3B,OAAQ7W,GAAOrgB,SAAS8Z,EAAU,oBAClCqd,WAAYrd,EAAU,6BAInC,CAAE5V,sBAAsB,KAC5B,CAAErF,SAAU,OAAQxU,QAAS,cAAgB,CAC5CoJ,QAAS,WACCm4B,EAAO54B,KAAKskB,MAAuB,WAAjBtkB,KAAKumB,UAA2B,iBACjD,CACHlwB,KAAM,sBACNysC,UAAW,CACPzsC,KAAM,kBACNuiC,KAAAA,EACAsK,aAAc,CACV7sC,KAAM,kBACNuiC,KAAAA,EACAxO,MAAO,oBAEX4Y,SAAU,8BAKlBrc,SAAS,kBAAmB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC7DqD,MAAOvD,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC3DukB,WAAY1J,GAAOtG,WAAW,CAC1Bqd,SAAU/W,GAAOxd,aACjBw0B,YAAahX,GAAOxd,aACpBy0B,SAAUjX,GAAOxd,aACjB00B,UAAWlX,GAAOxd,aAClB1I,OAAQkmB,GAAOxd,gBAEpB,CAAExY,QAAS,oBAAsB,CAChCoJ,QAAS,KAAO,CACZ2pB,MAAO,mBACP2M,WAAY,CACRqN,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACXp9B,OAAQ,UAIZwf,SAAS,wBAAyB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACnEyd,YAAanX,GAAOxd,WAAW,CAAEN,SAAS,IAC1Ck1B,WAAYpX,GAAOrgB,SAASqgB,GAAOxd,eACpC,CAAExY,QAAS,0BAA4B,CACtCoJ,QAAS,KAAO,CACZ+jC,eACAC,WAAY,CAAC,EAAG,mBC9G5BjhC,OAAOsC,eAAe4+B,GAAS,aAAc,CAAElrC,OAAO,qCACnB,EACnC,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,+BACjB,SAAkC6I,EAASO,SACjCuU,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5D7pB,KAAMmwB,GAAO3gB,IAAIma,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAmBI,cAAc,KAAW,CAC7G9G,QAAUjL,GAASA,EAAK+J,WAAW5U,OAAS,IAEhD+oC,UAAW1R,GAAOzgB,cAClBoyB,QAAS3R,GAAOzgB,cAChBqyB,YAAa5R,GAAOzgB,cACpBsyB,qBAAsB7R,GAAOzgB,cAC7BuyB,UAAW9R,GAAOzgB,cAClBwyB,UAAW/R,GAAOzgB,cAClByyB,aAAchS,GAAOzgB,cACrB0yB,YAAajS,GAAOzgB,cACpB2yB,iBAAkBlS,GAAOxd,WAAW,CAAE3C,IAAK,KAASnN,IAAK,MACzDy/B,cAAenS,GAAOxd,aACtB0xB,WAAYlU,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACpDkwB,eAAgBpS,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAChEusB,QAASe,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFutB,WAAY7Y,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAChE6kC,MAAOhqB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,OAC3DugC,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QACzD,CAAE1I,QAAS,wBAA8B,CACxCoJ,QAAS,IAAM6sB,GAAS8T,qBACxB32B,SAAU,CAAC5J,EAAMrH,EAAOoO,EAAQ0B,eACpBxH,EAAK2I,SAAS5J,EAAMrH,EAAOoO,EAAQ0B,SACD,EAAS9P,EAAM69C,qBAA+C,EAAS79C,EAAM8mC,QAAU,QACtH/0B,IAAI1K,EAAK5K,KAAK,UAAW,0BAA2B,oBAErB,EAASuD,EAAMimC,8BAAwD,EAASjmC,EAAM8mC,WACrH/0B,IAAI1K,EAAK5K,KAAK,kBAAmB,sCAEF,EAASuD,EAAM8mC,QAAU,IAAO,KAC/D/0B,IAAI1K,EAAK5K,KAAK,UAAW,wBAAyB,kBAEnB,EAASuD,EAAM69C,OAAS,IAAO,KAC9D9rC,IAAI1K,EAAK5K,KAAK,SAAU,uBAAwB,IAEpDuD,mBC1CnBgK,OAAOsC,eAAe+zC,GAAS,aAAc,CAAErgD,OAAO,oCACpB,EAClC,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,8BACjB,SAAiC6I,EAASO,SAChCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,gBAAiB0G,GAAOiH,aAAaxN,EAAU,YAAa,CAAEQ,cAAe,oBACxFoH,EAAa,CACfA,WAAYrB,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,kBAE7CH,SAAS,WAAY0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACtDsH,SAAUxH,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yBAC7D6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,cACzBo3B,GAAO/c,MAAOgd,GAASwsB,cAAcprB,IACvC,CAAE7iB,SAAU,WAAYxU,QAAS,aAAe,CAC/CoJ,QAAS,IAAM,CAAC,CACR4tB,SAAU,sBACVzX,MAAO,wBClBvBpT,OAAOsC,eAAe2uB,GAAS,aAAc,CAAEj7B,OAAO,sGAC0E,oBACvG,IAAIsb,IAAI,CAC7B,CAAC,+BAAgC,CAAE4f,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,+BAAgC,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,mBAAoB,CAAED,SAAU,CAAC,GAAqBC,OAAQ,KAC/D,CAAC,kBAAmB,CAAED,SAAU,CAAC,EAAoB,EAAgB,GAAeC,OAAQ,CAAC,EAAqB,EAAyB,KAC3I,CAAC,kBAAmB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC3D,CAAC,oBAAqB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC7D,CAAC,kBAAmB,CAAED,SAAU,GAAIC,OAAQ,KAC5C,CAAC,mBAAoB,CAAED,SAAU,CAAC,EAAsB,EAAgB,GAAqBC,OAAQ,CAAC,EAA4B,EAAsB,KACxJ,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAgB,GAAeC,OAAQ,CAAC,KAC3E,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAsB,EAAqB,EAAoB,EAA4B,EAAyB,EAAsB,EAA0B,EAAgB,EAAoB,GAAeC,OAAQ,KAClQ,CAAC,iBAAkB,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC7E,CAAC,qBAAsB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,4BAKtC,IAAI7f,IAAI,CAChC,CAAC,gBAAiB,CAAC,IACnB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,yBAKY,IAAIA,IAAI,CAC9B,CAAC,eAAgB,CAAC,IAClB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,wBAKW,IAAIA,IAAI,CAC7B,CAAC,wBAAyB,IAC1B,CAAC,iCAAkC,CAAC,IACpC,CAAC,qCAAsC,CAAC,IACxC,CAAC,8BAA+B,CAAC,IACjC,CAAC,0BAA2B,IAC5B,CAAC,qBAAsB,IACvB,CAAC,6BAA8B,CAAC,IAChC,CAAC,2BAA4B,IAC7B,CAAC,uBAAwB,CAAC,IAC1B,CAAC,0BAA2B,IAC5B,CAAC,uCAAwC,CAAC,IAC1C,CAAC,sBAAuB,IACxB,CAAC,+BAAgC,CAAC,IAClC,CAAC,wBAAyB,CAAC,IAC3B,CAAC,uBAAwB,IACzB,CAAC,0BAA2B,uBAKR,IAAIA,IAAI,CAC5B,CAAC,wBAAyB,CAAC,IAC3B,CAAC,sBAAuB,IACxB,CAAC,qBAAsB,IACvB,CAAC,uBAAwB,CAAC,IAC1B,CAAC,6BAA8B,IAC/B,CAAC,gCAAiC,IAClC,CAAC,4BAA6B,CAAC,IAC/B,CAAC,4BAA6B,IAC9B,CAAC,6BAA8B,IAC/B,CAAC,0BAA2B,IAC5B,CAAC,wBAAyB,IAC1B,CAAC,4BAA6B,CAAC,IAC/B,CAAC,2BAA4B,IAC7B,CAAC,+BAAgC,IACjC,CAAC,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,uBAAwB,IACzB,CAAC,2BAA4B,IAC7B,CAAC,qBAAsB,IACvB,CAAC,qBAAsB,IACvB,CAAC,oBAAqB,IACtB,CAAC,4BAA6B,MChFlCtR,OAAOsC,eAAe8uB,GAAS,aAAc,CAAEp7B,OAAO,iCACvB,EAC/B,MAAM6zB,GAASpkB,GACT4rB,GAAgB3rB,GAChBokB,GAAWlkB,2BACjB,SAA8B2I,EAASO,SAC7BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/Coc,EAAa,CACfA,WAAYrB,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,qBAE/CgO,EAAyBroB,GAC3BsoB,UAAW1H,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,oBAC7C4H,cAEoBsG,EAAYC,EAAcC,SAC3CpnB,EAAQ,GACRqnB,EAAuBC,GAAoB9iB,EAC5C/K,IAAI0tB,GACJ5wB,gBACGiD,SACiD,UAAvB0tB,EAAWztB,IAAI5R,UAAuB,IAAP2R,EAAgBA,EAAK,IAC3DJ,UAAWkuB,EAAgBtlB,SAASvX,kBAEnD88B,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjCz+B,KAAK,CACPwJ,SAAeoB,EAAKoQ,WAAW1J,IAAI,IAAI8lB,GAAO7mB,KAAK,CAAC,YAAc6uB,EAClEvzB,KAAMozB,EAAQC,EAAoBC,eAGpCn/B,KAAK,CAAEwJ,UAAY,EAAMqC,KAAMozB,EAAQD,KACtC5H,GAAOxf,WAAWC,SAEvBisC,EAAwBvkB,EAAkBX,GAAcY,eAAgB,0BAA+B5O,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBvI,MAAQuI,EAAO,2BAC1Ls4C,EAAuBxkB,EAAkBX,GAAcc,cAAe,yBAA8B9O,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBvI,MAAQuI,EAAO,0BACvLk0B,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBhP,EAAW,CAAE1U,KAAMzQ,MACxHo0B,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBlP,EAAW,CAAE1U,KAAMzQ,QAChHilB,SAAS,aAAc0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACxD1wB,KAAMg3B,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,yBACrFyuB,MAAO3I,GAAOnG,IAAImG,GAAOrgB,SAASqgB,GAAO3gB,IAAI2gB,GAAOtG,WAAWta,GAC3DwpB,MAAOnP,EAAU,mBACjBoP,YAAa7I,GAAOnG,IAAIJ,EAAU,oBAClCpb,QAAS2hB,GAAOrgB,SAAS8Z,EAAU,gBAChCgO,GACJ,CAAEjpB,SAAU,OAAQxU,QAAS,cAAgB,CAC5CoJ,QAAS,KAAO,CACZw1B,MAAO,EACPvqB,QAAS,CAAC,CACFrV,KAAM,iBACN6G,KAAM,0BAItB63B,UAAW1H,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,oBACjD,CAAEzvB,QAAS,eAAiB,CAC3BoJ,QAAS,KAAO,CACZu1B,MAAO,CAAC,CACAC,MAAO,EACPvqB,QAAS,CAAC,CACFrV,KAAM,iBACN6G,KAAM,iCAKxBi5B,EAAY,CACdrqB,gBACQxE,SACgC,UAAtBzG,EAAKsF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGtR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsB8Z,SAASjP,EAAK5K,KAAK,QAAQsR,WAGvGof,SAAS,aAAc0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACxD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC1DshB,OAAQzG,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAAMipB,IAC5EC,QAAS/I,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS4mB,KACpE9I,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACX+lB,yBAA0B5pB,GACtBvW,SAAUm3B,GAAOrgB,SAAS8Z,EAAU,gBACjCgO,GAEPwB,oBAAqB7pB,GACjBvP,KAAM2pB,KACHiO,GAEPyB,kBAAmB9pB,GACfvW,SAAUm3B,GAAOrgB,SAAS8Z,EAAU,gBACjCgO,GAEP0B,iBAAkB/pB,GACdvP,KAAM2pB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACvDsiB,GAEP2B,uBAAwBhqB,GACpBvP,KAAM2pB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACvDsiB,GAEP4B,qBAAsBjqB,GAClBvW,SAAUm3B,GAAOrgB,SAAS8Z,EAAU,gBACjCgO,GAEP6B,gBAAiBlqB,GACbvP,KAAM2pB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DokB,OAAQvJ,GAAOnG,IAAImG,GAAOzgB,gBACvBkoB,KAGZ,CAAEz9B,QAAS,eAAiB,CAC3BoJ,QAAS,KAAO,CACZpK,KAAM,iBACN6G,KAAM,yBAGNypB,SAAS,gBAAiB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC3DsH,SAAU2rB,GACT3sB,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,cACzBo3B,GAAO/c,MAAOgd,GAASwsB,cAAcprB,EAAYoH,EAAsBF,IACzE,CAAE/pB,SAAU,WAAYxU,QAAS,aAAe,CAC/CoJ,QAAS,KAAO,CACZ4tB,SAAU,sBACVzX,MAAO,SAGP+P,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5DwN,UAAWwlB,GACV1sB,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,eACzBo3B,GAAO/c,MAAOgd,GAASkH,eAAeoB,IACxC,CAAE/pB,SAAU,YAAaxU,QAAS,cAAgB,CACjDoJ,QAAS,KAAO,CACZ8zB,UAAW,0BACX1L,OAAQ,UAGRlC,SAAS,qBAAsB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAChEmS,UAAWrS,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC/DtV,KAAM2pB,IACNsS,OAAQrS,EAAU,mBAClBsS,UAAWvS,EAAW,CAAE1U,KAAM,CAAC,WAAY,gBAAiB,oBAC5DknB,KAAMhM,GAAOiM,aAAazS,EAAW,CAAE1U,KAAM,WAC9C,CAAE9a,QAAS,uBAAyB,CACnCoJ,QAAS,KAAO,CACZy4B,UAAW,+BACXh8B,KAAM,GACNi8B,OAAQ,EACRC,UAAW,WACXC,KAAM,2BCnJlB71B,OAAOsC,eAAeyzB,GAAS,aAAc,CAAE//B,OAAO,kCACtB,EAChC,MAAM6zB,GAASpkB,4BAEf,SAA+B8I,EAASnZ,KAE5B+tB,SAAS,cAAe0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACzDyS,KAAMnM,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC/B0S,YAAapM,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAL3C,EAKqEnN,IALrE,IAKkG,CAC9GU,QAAS,IANG,EAOZ6L,UAAW,CAAC2tC,EAAIp/C,IAPJ,IAOUA,EACtB0R,OAAQ,IAAM,CAAC,CAAErP,KAAM,cAAe4K,OAAQ,CARlC,GAQyD8J,SARzD,MAUhB+b,YAAaN,GAAOvb,UAAUC,EAAS,oBACvC,CACAtR,QAAS,KAAO,CACZg5B,YAbY,EAcZ9L,YAAa,SAGrB,CACAltB,QAAS,KAAO,CACZ+4B,KAAM,CACFC,YApBY,EAqBZ9L,YAAa,oBCxB7BnqB,OAAOsC,eAAe6+B,GAAS,aAAc,CAAEnrC,OAAO,kCACtB,EAChC,MAAM6zB,GAASpkB,4BACf,SAA+B8I,EAASO,SAC9BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CoX,EAAc2D,GAAOze,WAAW,CAClC,CACIvY,KAAM,SACNyL,KAAM+kB,IACNhY,UAA2B,kBAANhU,GAAgC,iBAANA,EAAkBA,EAAE4N,WAAa,IAEpF,CACIpS,KAAM,SACNyL,KAAMurB,GAAOxd,aACbhB,UAA2B,iBAANhU,EAAkB4S,SAAS5S,GAAK,GAEzD,CACIxE,KAAM,SACNyL,KAAMurB,GAAOtG,WAAW,CACpB7Z,IAAKmgB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KAC7CxP,IAAKstB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,OAEjDV,UAA2B,iBAANhU,EAAmB,CAAEqS,IAAKrS,EAAGkF,IAAKlF,GAAQ,IAEnE,CACIxE,KAAM,UACNyL,KAAMurB,GAAOzgB,cACbiC,UAAmB,SAANhU,GAAsB,IAANA,OAG7B8rB,SAAS,iBAAkB0G,GAAOtG,WAAW,CACjD0J,MAAOpD,GAAOnG,IAAImG,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtFoX,IAAKyD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACpEoE,MAAOkQ,EAAU,cACjB+C,WAAY/C,EAAU,cACtBgD,OAAQuD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvEuX,IAAKsD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,cACrH+zB,aAAcqD,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,4BACpD,CAAEzvB,QAAS,YACNsvB,SAAS,wBAAyB0G,GAAOtG,WAAW,CACxDmC,YAAamE,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAC5EyX,OAAQnD,EAAU,eACnB,CAAEzvB,QAAS,mBACNsvB,SAAS,kBAAmB0G,GAAOtG,WAAW,CAClDsjB,OAAQhd,GAAOnG,IAAImG,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvFoX,IAAKyD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpEuX,IAAKsD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,kBAAmBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,eACtHuF,MAAO6xB,GAAOnG,IAAImG,GAAOne,QAAQ2X,IAAc6C,EAAa,CAAEva,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBACzI,CAAEoB,QAAS,aACNsvB,SAAS,kBAAmB0G,GAAOtG,WAAW,CAClDmD,MAAOmD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEoX,IAAKyD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpEhX,MAAO6xB,GAAOnG,IAAImG,GAAOne,QAAQ2X,IAAc6C,KAChD,CAAEryB,QAAS,aACNsvB,SAAS,qBAAsB0G,GAAOtG,WAAW,CACrDoD,SAAUkD,GAAOnG,IAAImG,GAAOtG,WAAW,CACnCxtB,EAAGutB,EAAU,gBACbztB,EAAGytB,EAAU,gBACb9oB,EAAG8oB,EAAU,mBAEjBsD,MAAOiD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtE6X,QAASgD,GAAOnG,IAAIL,EAAW,CAAE1U,KAAMG,EAAY/K,IAAI,8BAA8B/G,QAAS3F,EAAET,MAAM,SACtGkwB,UAAW+C,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1E+X,MAAO8C,GAAOnG,IAAImG,GAAOtG,WAAW,CAChCwD,MAAOzD,EAAU,iBAErB8d,OAAQvX,GAAOnG,IAAImG,GAAOzgB,eAC1B8a,MAAO2F,GAAOnG,IAAIJ,EAAU,oBAC5BoD,MAAOmD,GAAOnG,IAAIJ,EAAU,qBAC7B,CAAEzvB,QAAS,gBACNsvB,SAAS,sBAAuB0G,GAAOtG,WAAW,CACtD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DiY,KAAM5D,IACNrtB,MAAOstB,EAAU,eAChBuG,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXoa,kBAAmB,CACfD,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE9DmY,oBAAqB,CACjBF,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DoY,iBAAkB,CACdH,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DqY,mBAAoB,CAChBJ,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DsY,sBAAuB,CACnBL,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DuY,oBAAqB,CACjBN,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DwY,mBAAoB,CAChBP,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9DyY,sBAAuB,CACnBR,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9D0Y,mBAAoB,CAChBT,KAAM5D,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAI9DmU,SAAS,mBAAoB0G,GAAOtG,WAAW,CACnDoE,SAAUkC,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,cACxC+Q,MAAO4D,EAAU,cACjBsE,aAAciC,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAqB6a,GAAOze,WAAW,CAC/H,CAAEvY,KAAM,UAAWyL,KAAMurB,GAAOzgB,cAAeiC,WAAa,GAC5D,CACIxY,KAAM,SAAUyL,KAAMurB,GAAOne,QAAQ2X,IAAcwG,GAAOzgB,oBAGlEye,QAASgC,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAAgB6a,GAAOzgB,gBAC9G0e,MAAO+B,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,yBAC5CozB,WAAY7sB,GAAOnG,IAAIJ,EAAU,sBAClC,CAAEzvB,QAAS,cACNsvB,SAAS,0BAA2B0G,GAAOtG,WAAW,CAC1DwE,UAAWzE,EAAU,cACrB0E,SAAU1E,EAAU,cACpB2E,QAAS4B,GAAOnG,IAAImG,GAAOzgB,eAC3B8e,QAAS2B,GAAOnG,IAAImG,GAAOzgB,gBAC5B,CAAEvV,QAAS,qBACNsvB,SAAS,qBAAsB0G,GAAOtG,WAAW,CACrDxtB,EAAGutB,EAAU,gBACbztB,EAAGytB,EAAU,gBACb9oB,EAAG8oB,EAAU,gBACb6E,SAAU7E,EAAU,gBACpB8E,WAAY9E,EAAU,iBACvB,CAAEzvB,QAAS,gBACNsvB,SAAS,mBAAoB0G,GAAOtG,WAAW,CACnD1wB,KAAMg3B,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAAeG,UAAU,MAC9FoX,IAAKsD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,mBAAoBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,cACvH41B,KAAMwB,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,UACzChR,SAAUgsB,GAAOnG,IAAIJ,EAAU,uBAC/BqzB,YAAa9sB,GAAOnG,IAAIJ,EAAU,uBAClCgF,SAAUuB,GAAOnG,IAAIJ,EAAU,uBAC/B1mB,MAAOitB,GAAOnG,IAAImG,GAAOtG,WAAW,CAChCgF,WAAYsB,GAAOnG,IAAImG,GAAOzgB,eAC9Bof,YAAaqB,GAAOnG,IAAImG,GAAOzgB,eAC/Bqf,aAAcoB,GAAOnG,IAAImG,GAAOzgB,eAChCsf,YAAamB,GAAOnG,IAAImG,GAAOzgB,eAC/Buf,QAASkB,GAAOnG,IAAImG,GAAOzgB,kBAE/Bwf,UAAWiB,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,SAAW2U,EAAU,oBAC7EuF,OAAQgB,GAAOnG,IAAIJ,EAAU,qBAC7B+d,QAASxX,GAAOnG,IAAIJ,EAAU,qBAC9BszB,UAAW/sB,GAAOnG,IAAIJ,EAAU,qBAChCge,gBAAiBzX,GAAOnG,IAAIJ,EAAU,qBACtCuzB,eAAgBhtB,GAAOnG,IAAImG,GAAOtG,WAAW,CACzCuzB,mBAAoBjtB,GAAOnG,IAAIJ,EAAU,eACzCyzB,cAAeltB,GAAOnG,IAAIJ,EAAU,wBAExCie,aAAc1X,GAAOnG,IAAImG,GAAOtG,WAAW,CACvCie,cAAe3X,GAAOnG,IAAImG,GAAOzgB,kBAErC0f,QAASe,GAAOnG,IAAImG,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBsU,EAAU,8BACrH,CAAEzvB,QAAS,cACNsvB,SAAS,0BAA2B0G,GAAOtG,WAAW,CAC1DwF,aAAcc,GAAOnG,IAAImG,GAAOzgB,eAChC4f,QAASa,GAAOnG,IAAImG,GAAOzgB,eAC3B6f,SAAUY,GAAOnG,IAAImG,GAAOzgB,eAC5B8f,cAAeW,GAAOnG,IAAImG,GAAOzgB,eACjC+f,aAAcU,GAAOnG,IAAImG,GAAOzgB,eAChCggB,eAAgBS,GAAOnG,IAAImG,GAAOzgB,eAClCigB,yBAA0BQ,GAAOnG,IAAImG,GAAOzgB,eAC5CkgB,eAAgBO,GAAOnG,IAAImG,GAAOzgB,eAClCmgB,cAAeM,GAAOnG,IAAIJ,EAAU,qBACpCkG,cAAeK,GAAOnG,IAAIJ,EAAU,sBACrC,CAAEzvB,QAAS,qBACNsvB,SAAS,mBAAoB0G,GAAOtG,WAAW,CACnDkG,MAAOnG,EAAU,gBACjBoG,MAAOpG,EAAU,gBACjBqG,QAASE,GAAOnG,IAAImG,GAAOzgB,eAC3BmgB,cAAeM,GAAOnG,IAAIJ,EAAU,qBACpCzwB,KAAMg3B,GAAOnG,IAAIJ,EAAU,6BAC5B,CAAEzvB,QAAS,uBClLlBmM,OAAOsC,eAAe4zB,GAAS,aAAc,CAAElgC,OAAO,8BAC1B,EAC5B,MAAM6zB,GAASpkB,wBACf,SAA2B8I,EAASO,SAC1BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,SAAU0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACpD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXqpB,4BAA6B,CACzBC,MAAOvM,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,eAAgBW,YAAY,KACjE+mB,QAASxM,GAAOrgB,SAAS6Z,KACzBtwB,IAAK82B,GAAOne,QAAQ2X,IACpBC,EAAU,sBACVxN,OAAQwN,EAAU,kBAEtBgT,+BAAgC,CAC5BF,MAAOvM,GAAOnG,IAAIL,KAClBkT,YAAa1M,GAAOrgB,SAAS8Z,EAAU,sBACvCxN,OAAQwN,EAAU,kBAEtBkT,qBAAsB,CAClBJ,MAAOvM,GAAOnG,IAAIL,KAClBoT,WAAYnT,EAAU,qBACtBxN,OAAQuN,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5D+b,WAAYlB,GAAOnG,IAAImG,GAAOxd,cAC9BqqB,YAAa7M,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9F05B,qBAAsB,CAClBP,MAAOvM,GAAOnG,IAAIL,KAClBoT,WAAYnT,EAAU,qBACtBxN,OAAQuN,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5D+b,WAAYlB,GAAOnG,IAAImG,GAAOxd,cAC9BqqB,YAAa7M,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9F25B,oBAAqB,CACjBR,MAAOvM,GAAOnG,IAAIL,KAClBoT,WAAYnT,EAAU,qBACtBxN,OAAQuN,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5D+b,WAAYlB,GAAOnG,IAAImG,GAAOxd,cAC9BqqB,YAAa7M,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9F45B,6BAA8B,CAC1BT,MAAOvM,GAAOnG,IAAIL,KAClBoT,WAAYnT,EAAU,qBACtBxN,OAAQuN,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5D+b,WAAYlB,GAAOnG,IAAImG,GAAOxd,cAC9BqqB,YAAa7M,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9F65B,yBAA0B,CACtBV,MAAOvM,GAAOnG,IAAIL,KAClBoT,WAAYnT,EAAU,qBACtBxN,OAAQuN,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DoE,MAAOyW,GAAOxd,WAAW,CAAEN,SAAS,KAExCgrB,qBAAsB,CAClBX,MAAOvM,GAAOnG,IAAIL,KAClBrvB,KAAMsvB,EAAU,4BAChB0T,SAAU1T,EAAU,4BACpBxN,OAAQwN,EAAU,oBAG3B,CAAEzvB,QAAS,SAAU6Z,sBAAsB,IAAS,CACnDzQ,QAAS,KAAO,CACZpK,KAAM,mCAGNswB,SAAS,oBAAqB0G,GAAO3gB,IAAI2gB,GAAOze,WAAW,CAC/D,CACIvY,KAAM,SACNyL,KAAMglB,EAAU,4BAChBjY,UAAahU,EAAE,IAEnB,CACIxE,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,6BAChCjY,UAAa,CAAChU,MAElB,CACA4F,QAAS,KAAO,CACZkpB,KAAM,yBAGNhD,SAAS,2BAA4B0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACtE4C,KAAM0D,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACrEoX,IAAKyD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACpE,CACA/R,QAAS,KAAO,CACZkpB,KAAM,yBAGNhD,SAAS,gBAAiB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC3D4C,KAAM9C,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DoE,MAAOyW,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,OACpF,CACAA,QAAS,KAAO,CACZkpB,KAAM,kCCjGlBnmB,OAAOsC,eAAe20B,GAAS,aAAc,CAAEjhC,OAAO,4BAC5B,EAC1B,MAAM6zB,GAASpkB,sBACf,SAAyB8I,EAASO,SACxBuU,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CooB,EAAWh5B,GAAS2rB,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACnD7sB,QAASmzB,GAAOnG,IAAImG,GAAOzgB,eAC3BgD,OAAQyd,GAAOrgB,SAASqgB,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAM+kB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,KAC1E9D,UAAahU,EAAEiQ,IAEnB,CACIzU,KAAM,SACNyL,KAAMurB,GAAOtG,WAAW,CACpBjc,GAAI+b,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,EAAME,cAAc,KAC5F8nB,SAAUtN,GAAOzgB,gBAErBiC,WAAc,CAAE/D,GAAIjQ,SAG7B,CAAExD,QAAS,QAAU,CACpBoJ,QAAS,KAAO,CACZmP,OAAQ,SAGR+W,SAAS,YAAa+T,EAAQ,YAC9B/T,SAAS,kBAAmB+T,EAAQ,kBACpC/T,SAAS,YAAa+T,EAAQ,YAC9B/T,SAAS,eAAgB+T,EAAQ,gBACjC/T,SAAS,iBAAkB+T,EAAQ,iBACnC/T,SAAS,WAAY+T,EAAQ,oBChCzCl3B,OAAOsC,eAAe80B,GAAS,aAAc,CAAEphC,OAAO,qCACnB,EACnC,MAAM6zB,GAASpkB,+BACf,SAAkC8I,EAASO,SACjCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CuoB,EAAmBhgC,QAAYyM,SAAWzM,aAAa1B,MAAQ0hC,EAAgBhgC,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAEigC,YAAyB,IAAPxzB,EAAgBA,EAAmB,iBAANzM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAE4N,cAChPke,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOze,WAAW,CAC5D,CACIvY,KAAM,SACNyL,KAAMglB,EAAU,yBAChBjY,UAAahU,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAEigC,KAAMD,EAAgBhgC,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEigC,KAAMD,EAAgBhgC,KAEhK,CACIxE,KAAM,OACNyL,KAAMglB,EAAU,uBAChBjY,UAAa,CAAChU,IAElB,CACIxE,KAAM,SACN8X,SAAU,EACVrM,KAAM+kB,IACNhY,OAAQgsB,GAEZ,CACIxkC,KAAM,SACNyL,KAAMurB,GAAOxd,aACbhB,iBACUxZ,EAAI0lC,WAAWF,EAAgBhgC,WAC9BmgC,SAAS3lC,GAAKA,EAAOwF,EAAI,EAAI,IAG5C,CACIxE,KAAM,UACNyL,KAAMurB,GAAOzgB,cACbiC,iBACUrW,EAAIqiC,EAAgBhgC,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/BoJ,QAAS,KAAO,CACZq6B,KAAM,cAGRG,EAAe,CACjBzrB,MAAO6d,GAAOnG,IAAIL,KAClBoe,KAAM5X,GAAOnG,IAAIL,KACjBqU,KAAM7N,GAAOnG,IAAImG,GAAOzgB,eACxBuuB,OAAQ9N,GAAOnG,IAAImG,GAAOzgB,eAC1BwuB,WAAY/N,GAAOnG,IAAImG,GAAOzgB,eAC9ByuB,cAAehO,GAAOnG,IAAImG,GAAOzgB,eACjC0uB,WAAYjO,GAAOnG,IAAImG,GAAOzgB,eAC9B2uB,UAAWlO,GAAOnG,IAAIL,KACtB2U,WAAYnO,GAAOnG,IAAImG,GAAOtG,WAAW,CACrC0U,OAAQ5U,EAAW,CAAE1U,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrGkb,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,YACzBo3B,GAAO/c,MAAO,CACXorB,YAAe,CACXliC,MAAOqtB,KAEX8U,kBAAqB,CACjBniC,MAAOqtB,KAEX+U,UAAa,CACTpiC,MAAOqtB,KAEXgV,SAAY,CACRriC,MAAOqtB,KAEXiV,YAAe,CACXtiC,MAAOqtB,EAAW,CAAExU,UAAW,UAAWvK,OAAQ,CAAEi0B,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACfziC,MAAOqtB,EAAW,CAAExU,UAAW,UAAWvK,OAAQ,CAAEi0B,cAAc,EAAMC,cAAc,UAIlGE,WAAY7O,GAAOnG,IAAImG,GAAOtG,WAAW,CACrC0U,OAAQ5U,EAAW,CAAE1U,KAAM,CAAC,YAAa,YAAa,kBACrDkb,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,YACzBo3B,GAAO/c,MAAO,CACX6rB,UAAa,CACT3iC,MAAO6zB,GAAOnG,IAAIJ,EAAU,mBAC5Boe,SAAU7X,GAAOnG,IAAIJ,EAAU,oBAEnCsV,UAAa,CACT5iC,MAAO6zB,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAEu0B,OAAQ,0BACnE6I,SAAU7X,GAAOnG,IAAImG,GAAOtG,WAAW,CACnCjc,GAAI+b,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UACxDoE,MAAOyW,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KAC/Cqa,IAAKyD,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE7U,KAAM,gBAG7HqmC,YAAe,CACX9iC,MAAO6zB,GAAOnG,IAAImG,GAAOtG,WAAW,CAChC7pB,KAAMmwB,GAAOnG,IAAIL,KACjBxwB,KAAMg3B,GAAOnG,IAAIL,KACjB/b,GAAIuiB,GAAOnG,IAAIL,QAEnBqe,SAAU7X,GAAOnG,IAAImG,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC9C7pB,KAAMmwB,GAAOnG,IAAIJ,EAAU,mBAC3BzwB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D1H,GAAI+b,EAAW,CAAExU,UAAW,WAC5B,CACA5R,QAAS,KAAO,CACZpK,KAAM,gBACNyU,GAAI,iDAMxBmsB,MAAO5J,GAAOnG,IAAIJ,EAAU,2BAExBH,SAAS,wBAAyB0G,GAAO3gB,IAAI2gB,GAAOze,WAAW,CACnE,CACIvY,KAAM,OACNoJ,SAAyB,iBAAN5E,EACnBgU,WAAc,CAAEisB,KAAM,KACtB3sB,YACArM,KAAMurB,GAAOtG,WAAWta,GACpBquB,KAAMjU,KACHoU,KAGX,CACI5kC,KAAM,cACNoJ,cAAoE,kBAA1B,EAAS5E,EAAE0hC,WACrD1tB,WAAc,CAAE0tB,UAAW,KAC3Bz6B,KAAMurB,GAAOtG,WAAWta,GACpB8vB,UAAW1V,IACX2V,KAAMnP,GAAOnG,IAAIJ,EAAU,yBACxBmU,KAGX,CACI5kC,KAAM,QACNoJ,cAAgE,kBAAtB,EAAS5E,EAAE4hC,OACrD5tB,WAAc,CAAE4tB,MAAO,KACvB36B,KAAMurB,GAAOtG,WAAWta,GACpBgwB,MAAOpP,GAAOtG,WAAW,CACrB7pB,KAAM2pB,EAAW,CAAExU,UAAW,SAAUvK,OAAQ,CAAEqxB,OAAQ,SAAU9iC,KAAM,WAAYqmC,eAAe,KACrGC,UAAW9V,EAAW,CAAExU,UAAW,cACnC7Y,MAAO6zB,GAAOnG,IAAIL,QAEnBoU,KAGX,CACI5kC,KAAM,WACNoJ,cAAmE,kBAAzB,EAAS5E,EAAE+hC,UACrD/tB,WAAc,CAAE+tB,SAAU,KAC1B96B,KAAMurB,GAAOtG,WAAWta,GACpBmwB,SAAU/V,EAAW,CAAExU,UAAW,SAAUvK,OAAQ,CAAEqxB,OAAQ,WAAY9iC,KAAM,cAChFmkD,UAAWntB,GAAOnG,IAAIJ,EAAU,oBAC7BmU,KAGX,CACI5kC,KAAM,UACNoJ,cAAkE,kBAAxB,EAAS5E,EAAEgiC,SACrDhuB,WAAc,CAAEguB,QAAS,KACzB/6B,KAAMurB,GAAOtG,WAAWta,GACpBowB,QAAShW,EAAW,CAAE1U,KAAM,UAAWW,YAAY,KAChDmoB,KAGX,CACI5kC,KAAM,MACNoJ,cAA8D,kBAApB,EAAS5E,EAAEkvB,KACrDlb,WAAc,CAAEkb,IAAK,KACrBjoB,KAAMurB,GAAOtG,WAAWta,GACpBsd,IAAKlD,EAAW,CAAExU,UAAW,aAC7BqV,MAAO2F,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,SAAUvK,OAAQ,CAAEwiB,UAAW,EAAG5a,WAAW,MACvFqY,OAAQsF,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,SAAUvK,OAAQ,CAAEqxB,OAAQ,WAAY9iC,KAAM,eACzFymC,QAASzP,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxEuqB,UAAW1P,GAAOnG,IAAImG,GAAOzgB,eAC7B4tC,UAAWntB,GAAOnG,IAAIJ,EAAU,oBAC7BmU,MAGZ,CAAE5jC,QAAS,wBAAyBiwB,cAAe,0BAA4B,CAC9E7mB,QAAS,KAAO,CACZq6B,KAAM,UAGNnU,SAAS,sBAAuB0G,GAAO3gB,IAAI2gB,GAAOrgB,SAAS8Z,EAAU,mBAAoB,CAC7FrmB,QAAS,IAAM,CAAC,CACRq6B,KAAM,yBC7LtBt3B,OAAOsC,eAAeq/B,GAAS,aAAc,CAAE3rC,OAAO,6BAC3B,EAC3B,MAAM6zB,GAASpkB,uBACf,SAA0B8I,EAASO,SACzBuU,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,QAAS0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACnDqe,gBAAiBve,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0CACrE6yB,MAAOhY,GAAOxd,aACdwjB,MAAOhG,GAAOxd,aACdw0B,YAAahX,GAAOxd,aACpBy1B,SAAUjY,GAAOxd,aACjB01B,cAAe1e,EAAW,CAAE1U,KAAM,CAAC,OAAQ,OAAQ,UACnDqzB,qBAAsBnY,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,CAAC,OAAQ,aAC7DtG,SAAUgb,EAAW,CAAE1U,KAAM,mBAC7BszB,sBAAuBpY,GAAOnG,IAAImG,GAAOzgB,eACzC84B,2BAA4BrY,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACxEusB,QAASe,GAAOtG,WAAW,CACvB4e,UAAWtY,GAAOxd,WAAW,CAAEL,OAAO,IACtCo2B,UAAWvY,GAAOxd,WAAW,CAAEL,OAAO,IACtCq2B,YAAaxY,GAAOxd,WAAW,CAAEL,OAAO,IACxCs2B,gBAAiBzY,GAAOxd,WAAW,CAAEL,OAAO,IAC5Cu2B,YAAa1Y,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEL,OAAO,KACnDw2B,cAAe3Y,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEL,OAAO,KACrDy2B,qBAAsB5Y,GAAOnG,IAAIL,EAAW,CAAE1U,KAAM,CAAC,OAAQ,cAAe,YAC5E+zB,cAAe7Y,GAAOnG,IAAIL,KAC1Bsf,WAAY9Y,GAAOnG,IAAImG,GAAOtG,WAAW,CACrCqf,MAAOvf,IACPwf,WAAYhZ,GAAOxd,WAAW,CAAEN,SAAS,IACzC+2B,oBAAqBjZ,GAAOxd,WAAW,CAAEN,SAAS,IAClDpI,OAAQkmB,GAAOxd,gBAEnB02B,gBAAiBlZ,GAAOnG,IAAImG,GAAOtG,WAAW,CAC1Cqf,MAAOvf,IACP2f,YAAanZ,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAElD0mC,MAAOpZ,GAAOnG,IAAImG,GAAOtG,WAAW,CAChCqf,MAAOvf,IACP6f,UAAWrZ,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnDy5B,UAAWtZ,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnD05B,sBAAuBvZ,GAAOzgB,iBAElCi6B,SAAUxZ,GAAOnG,IAAImG,GAAOtG,WAAW,CACnCzd,QAAS+jB,GAAOtG,WAAW,CACvB1wB,KAAMwwB,MAEVqQ,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,SAGtD+mC,OAAQzZ,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6CAC5Eu0B,SAAU1Z,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,CACpC,UACA,WACA,UACA,6BACA,iBACA,gBACA,UACEkb,GAAO3gB,IAAI2gB,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACnD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1DshB,OAAQzG,GAAOxd,WAAW,CAAEN,SAAS,IACrCy3B,SAAU3Z,GAAOxd,WAAW,CAAEN,SAAS,IACvC03B,SAAU5Z,GAAOxd,WAAW,CAAEN,SAAS,OACtC,CACD1D,SAAU,IAAM,OAChBpL,QAAS,IAAM,CAAC,CACRpK,KAAM,gBACNy9B,OAAQ,OAGpBoT,YAAa7Z,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoB6a,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC7HogB,cAAe9Z,GAAOxd,aACtBu3B,OAAQ/Z,GAAOxd,cAChB,CAAEhE,SAAU,aAAe,CAC1BpL,QAAS,KAAO,CACZ0mC,cAAe,IACfC,OAAQ,OAGhBC,QAASha,GAAOne,QAAQ2X,EAAW,CAAE1U,KAAM,CAAC,MAAO,YAAckb,GAAO3gB,IAAI2gB,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAAqC,CACjL/R,QAAS,IAAM,CAAC,qBAEpBwjC,SAAU5W,GAAOrgB,SAASqgB,GAAO3gB,IAAI2gB,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAAsC,CAAE3G,SAAU,IAAM,cAAgB,CAAEuB,UAAW,MAC/L,CAAE/V,QAAS,UAAY,CACtBoJ,QAAS,KAAO,CACZ2kC,gBAAiB,kBACjBC,MAAO,KACPhS,MAAO,IACPgR,YAAa,GACbiB,SAAU,GACVC,cAAe,OACf15B,SAAU,SACVygB,QAAS,CACLqZ,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBC/FjCtiC,OAAOsC,eAAewhC,GAAS,aAAc,CAAE9tC,OAAO,8BAC1B,EAC5B,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,wBACjB,SAA2B6I,EAASO,SAC1BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CmoC,EAAe,CACjBC,kBAAmBptB,GAASurB,gBAC5B8B,MAAOttB,GAAOtG,WAAW,CACrB6zB,gBAAiBttB,GAASurB,gBAC1BgC,UAAWvtB,GAASurB,gBACpBiC,iBAAkBztB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC1D6tC,yBAA0BztB,GAASurB,gBACnCmC,+BAAgC3tB,GAAOxd,aACvCorC,8BAA+B5tB,GAAOxd,gBAGxCqrC,EAAa,CACfC,6BAA8B7tB,GAASurB,gBACvCuC,2BAA4B9tB,GAASurB,gBACrCwC,YAAa/tB,GAASurB,cAAc,CAAE3rC,OAASnN,IAAK,OAEhD4mB,SAAS,oBAAqB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC/D1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC1DvF,OAAQogB,GAAOtG,WAAW,CACtBmQ,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC9C1G,EAAGytB,EAAU,mBACbw0B,OAAQhuB,GAASurB,gBACjB0C,WAAYz0B,EAAU,mBACtBywB,iBAAkBlqB,GAAOzgB,cACzB4uC,eAAgBnuB,GAAOnG,IAAImG,GAAOtG,WAAW,CACzC00B,WAAYpuB,GAAOnG,IAAImG,GAAOzgB,eAC9B8uC,UAAWruB,GAAOnG,IAAIJ,EAAU,gBAChC60B,YAAatuB,GAAOnG,IAAIJ,EAAU,gBAClC80B,WAAYvuB,GAAOnG,IAAIJ,EAAU,gBACjC+0B,cAAexuB,GAAOnG,IAAIJ,EAAU,oBAEvCuG,GAAOhd,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChCo3B,GAAO/c,MAAO,CACXwrC,mBAAoBrB,EACpBsB,iBAAkBb,EAClBc,wBAAyBd,MAGlC,CAAE7jD,QAAS,WAAa,CACvBoJ,QAAS,KAAO,CACZpK,KAAM,iBACN4W,OAAQ,CACJiqB,YAAa,oBCjD7B1zB,OAAOsC,eAAeyhC,GAAS,aAAc,CAAE/tC,OAAO,iCACvB,EAC/B,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,2BACjB,SAA8B6I,EAASO,SAC7BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/Cu1B,EAAc,CAChBjxB,MAAO0W,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,SAEvC4mB,SAAS,uBAAwB0G,GAAOtG,WAAW,CACvD1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAC1DvF,OAAQogB,GAAOtG,WAAW,EACrBsG,GAAOhd,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChCo3B,GAAO/c,MAAO,CACXy3B,yBAA0B,CACtBC,KAAMnhB,EAAW,CAAE1U,KAAM,qBAE7B8pC,yBAA0B,CACtBC,QAASr1B,EAAW,CAAE1U,KAAM,CAAC,QAAS,aACtCgqC,8BAA+B9uB,GAAOxd,WAAW,CAAEN,SAAS,KAEhE04B,mBAAoB,CAChBpf,OAAQwE,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAEpDg7B,kBAAmBL,EACnBM,wBAAyB,CACrBvxB,MAAOyW,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC/Ck7B,YAAa/a,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACrDm7B,aAAchb,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAEnDuoC,6BAA8BT,EAC9BU,wBAAyB,CACrBC,YAAanb,GAAOxd,aACpB44B,YAAapb,GAAOxd,WAAW,CAAEN,SAAS,IAC1Cm5B,YAAarb,GAAOxd,WAAW,CAAEN,SAAS,KAE9Co5B,+BAAgC,CAC5BC,qBAAsBvb,GAAOxd,WAAW,CAAEN,SAAS,IACnDs5B,aAAcxb,GAAOxd,aACrBi5B,aAAczb,GAAOnG,IAAImG,GAAOxd,eAEpCk5B,sBAAuB,CACnBC,MAAOliB,EAAU,wBACjBmiB,MAAOniB,EAAU,yBAErBs1B,sBAAuB,CACnB3R,UAAW5jB,EAAW,CAAE1U,KAAM,oBAElCkqC,oCAAqC,CACjC5R,UAAW5jB,EAAW,CAAE1U,KAAM,oBAElCm3B,sBAAuB,CACnBzgB,OAAQwE,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAEpDq8B,kBAAmB,CACfjJ,OAAQxZ,EAAU,oBAEtBw1B,kCAAmC,CAC/B3L,gBAAiBtjB,GAAOxd,WAAW,CAAEN,SAAS,OAGvD,CAAElY,QAAS,YAAawU,SAAU,eACtC,CAAExU,QAAS,YAAawU,SAAU,gCC/DzCrI,OAAOsC,eAAe6jC,GAAS,aAAc,CAAEnwC,OAAO,mDACE,EACxD,MAAM6zB,GAASpkB,+BACf,SAAkC8I,EAASO,SACjCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,iBAChC+a,GAAOze,WAAW,CACnC,CACIvY,KAAM,SACNyL,KAAM+kB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1D3D,cAEJ,CACIxY,KAAM,SACNyL,KAAMglB,EAAU,kBAChBjY,WAAc,CACV+6B,WAAY,CAAC,CACLC,eAAkB,yBAK9BljB,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5D6iB,WAAYvc,GAAOrgB,SAAS8Z,EAAU,eACvC,CAAEzvB,QAAS,mBAAqB,CAC/BoJ,QAAS,KAAO,CACZmpC,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpCrjB,SAAS,YAAa0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACvD8iB,eAAgBhjB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACnE6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,oBACzBo3B,GAAO/c,MAAO,CACX45B,sBAAuB,CACnBC,UAAW9c,GAAOxd,cAEtBu6B,yBAA0B,CACtBC,OAAQhd,GAAOrgB,SAAS8Z,EAAU,iBAEtCwjB,sBAAuB,CACnBC,UAAWld,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAEhDyqC,oBAAqB,CACjBC,UAAW5jB,EAAW,CAAE1U,KAAM,mBAC9BhL,OAAQkmB,GAAOxd,WAAW,CAAEN,SAAS,KAEzCgtC,6BAA8B,CAC1B/iD,MAAOqtB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE/Dk4B,iBAAkB,CACdZ,MAAOzc,GAAOrgB,SAAS8Z,EAAU,sBAG1C,CAAEjb,SAAU,WAAYxU,QAAS,cAAgB,CAChDoJ,QAAS,KAAO,CACZopC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5BrjB,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5D4jB,mBAAoBtd,GAAOnG,IAAIJ,EAAU,kBACzCijB,mBAAoBjjB,EAAU,aAC9BmjB,gBAAiBnjB,EAAU,aAC3B8jB,aAAc9jB,EAAU,eACxB+jB,WAAYxd,GAAOnG,IAAIL,EAAW,CAAExU,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,wBACvF,CAAEA,SAAU,YAAaxU,QAAS,mBAAqB,CACtDoJ,QAAS,KAAO,CACZspC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,SAAU1d,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,KACpEy7B,SAAU3d,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,KACpE07B,WAAY5d,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACxDmrC,WAAY7d,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,QAEpD4mB,SAAS,gBAAiB0G,GAAOtG,WAAW,CAChDijB,eAAgBnjB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBACnE6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,oBACzBo3B,GAAO/c,MAAO,CACX66B,oCAAqC1+B,GACjCimB,KAAM7L,EAAW,CAAE1U,KAAM,CAAC,IAAK,IAAK,QACjC24B,GAEPM,uBAAwBN,IAE7B,CAAEzzC,QAAS,gBAAiB6Z,sBAAsB,OAC7CyV,SAAS,YAAa0G,GAAOtG,WAAW,CAC5CijB,eAAgBnjB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACnE6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,oBACzBo3B,GAAO/c,MAAO,CACX+6B,wBAAyB,CACrB3jB,MAAOb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE/D84B,6BAA8B,CAC1BC,YAAazkB,EAAU,gBAE3B0kB,+BAAgC,CAC5B9jB,MAAOb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D0kB,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD0rC,oCAAqC,CACjCF,YAAazkB,EAAU,eACvBoQ,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD2rC,sBAAuB,CACnB9hB,IAAK/C,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAGlE,CAAEnb,QAAS,YAAa6Z,sBAAsB,MCnIrD1N,OAAOsC,eAAe6lC,GAAS,aAAc,CAAEnyC,OAAO,+BACzB,EAC7B,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,GAGXssC,GAAkBpsC,yBACxB,SAA4B2I,EAASO,SAC3BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/Cs5B,EAAoB,CACtBC,YAAaxe,GAAOnG,IAAImG,GAAOzgB,eAC/Bk/B,QAASze,GAAOnG,IAAImG,GAAOzgB,eAC3Bm/B,WAAY1e,GAAOnG,IAAImG,GAAOzgB,eAC9Bo/B,QAAS3e,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5D++B,QAAS5e,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5Dg/B,QAAS7e,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5Di/B,MAAO9e,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC1Dk/B,eAAgBtlB,EAAU,wBAC1BulB,aAAcvlB,EAAU,gBACxBwlB,UAAWjf,GAAOrgB,SAAS8Z,EAAU,gBACrCylB,UAAWlf,GAAOrgB,SAAS8Z,EAAU,iBAEnC0lB,EAAa,CACfhxC,MAAOsrB,EAAU,eACjB2lB,OAAQnf,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,IAC5C2sC,YAAarf,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAC7D4sC,QAAStf,GAAOrgB,SAAS8Z,EAAU,iBAEjC8lB,EAAqB,CACvBC,aAAc/lB,EAAU,wBACxBgmB,cAAehmB,EAAU,wBACzBimB,eAAgB1f,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,MAEtDitC,EAAmBnvB,GAAOtG,WAAW,CACvC9kB,OAAQ6kB,EAAU,aAClBtrB,MAAOsrB,EAAU,iBAEfkmB,EAAY,CACdpsB,KAAMyM,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACtD08C,+BAAgCpvB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACjE4sC,QAAStf,GAAOrgB,SAASwvC,IAEvBvP,EAAU5f,GAAOze,WAAW,CAC9B,CACIvY,KAAM,SACNyL,KAAM+kB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAE9D,CACInc,KAAM,SACNyL,KAAMglB,EAAU,wBAErB,CAAEQ,cAAe,YACdo1B,EAAwB,CAC1BR,QAASr1B,EAAW,CAAE1U,KAAM,CAAC,QAAS,aACtCkzB,MAAO/X,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAC3C48C,eAAgBtvB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAChE68C,0BAA2BvvB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC5D88C,yBAA0BxvB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC3D+8C,kBAAmBzvB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACpDg9C,UAAWzvB,GAAS2rB,cACpB+D,YAAan2B,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACjEyqC,aAAcn2B,EAAU,wBACxBo2B,mBAAoBjQ,KAEhBtmB,SAAS,qBAAsB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAChE1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC1DvF,OAAQogB,GAAOtG,WAAW,EACrBsG,GAAOhd,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChCo3B,GAAO/c,MAAO,CACX48B,mBAAoB,CAChBhW,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDotC,2BAA4B,CACxBC,MAAO9f,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,IAC3CugC,OAAQhT,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAEhDstC,uBAAwB,CACpBjB,eAAgBtlB,EAAU,yBAE9BiiB,sBAAuB,CACnBuE,UAAWxmB,EAAU,wBACrBuD,QAAS4iB,GAEbkQ,6BAA8B,CAC1B7P,UAAWxmB,EAAU,wBACrBuD,QAAS4iB,GAEbM,0BAA2B,CACvBrI,SAAUpe,EAAU,eACpB0mB,IAAK1mB,EAAU,eACflG,KAAM0M,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,KAC1C0tC,SAAUngB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAElD2tC,iBAAkBlB,EAClB4Q,8BAA+B,CAC3BjB,8BAA+B9uB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC/EugC,OAAQhT,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAC5C0sC,OAAQnf,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAC5Cs9C,sCAAuChwB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACvFu9C,iBAAkBjwB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAClEw9C,gCAAiCjwB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MACrEy9C,QAASlwB,GAASurB,cAAc,CAAE3rC,IAAK,EAAGnN,IAAK,IAC/C09C,QAASnwB,GAASurB,cAAc,CAAE3rC,IAAK,EAAGnN,IAAK,IAC/C29C,uDAAwDrwB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzF49C,4DAA6DtwB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7G69C,+CAAgDvwB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEpG6tC,wBAAyB,CACrB7lC,MAAOslB,GAAOzgB,cACdihC,KAAMxgB,GAAOnG,IAAIJ,EAAU,eAE/BgnB,sBAAuB,CACnBC,qBAAsB1gB,GAAOnG,IAAImG,GAAOzgB,eACxCohC,oBAAqB3gB,GAAOnG,IAAIJ,EAAU,cAC1CmnB,OAAQ5gB,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACtCmnB,QAAS7gB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACjD4+B,QAAS9gB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACjDk9B,OAAQpf,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KAChD+wB,OAAQjT,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KAChD6+B,QAAS/gB,GAAOnG,IAAImG,GAAOzgB,mBAGnCyhC,uBAAwB,CACpB7yC,MAAOsrB,EAAU,eACjBwZ,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE5DuuC,mBAAoB1C,EACpB2C,wBAAyB,CACrB/yC,MAAOsrB,EAAU,gBAErB+2B,mBAAoB,CAChBC,0BAA2BzwB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAC3Eg+C,kBAAmB1wB,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACvFwrC,mBAAoB3wB,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACxFyrC,kBAAmBzI,GAAgBb,WACnCuJ,mBAAoB1I,GAAgBb,YAExCwJ,kBAAmB,CACf9T,OAAQhd,GAAOtG,WAAW,CACtBq3B,iBAAkBt3B,EAAU,wBAC5Bu3B,qBAAsBv3B,EAAU,wBAChCw3B,+BAAgCx3B,EAAU,wBAC1Cy3B,sBAAuBz3B,EAAU,wBACjC03B,qBAAsB13B,EAAU,wBAChC23B,iBAAkBpxB,GAAOrgB,SAAS8Z,EAAU,gBAC5C43B,eAAgB73B,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACpEmsC,eAAgB93B,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAExE0xB,OAAQ7W,GAAOtG,WAAW,CACtB63B,QAASvxB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MACxD8+C,YAAaxxB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MAC5D++C,aAAczxB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MAC7Dg/C,YAAa1xB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,QAEhEi/C,MAAO3xB,GAAOtG,WAAW,CACrBk4B,sBAAuB5xB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACnEm/C,gBAAiB7xB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC7Do/C,mBAAoB9xB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,GAAIwP,SAAS,OAEjF6vC,iBAAkB/xB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC9Ds/C,gCAAiChyB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC7Eu/C,4BAA6BjyB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACzEw/C,oCAAqClyB,GAAOnG,IAAImG,GAAOzgB,eACvD4yC,oBAAqBnyB,GAAOnG,IAAIoG,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MACpE0/C,oBAAqBpyB,GAAOnG,IAAIoG,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MACpE2/C,aAAcryB,GAAOnG,IAAIoG,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAC7D4/C,eAAgBtyB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACxDqwC,eAAgBvyB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,KACxDswC,yBAA0BxyB,GAAOxd,WAAW,CAAEN,SAAS,KAE3DuwC,wBAAyB,CACrBC,aAAc1yB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,GAAIwP,SAAS,KACvEywC,oBAAqB3yB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACjEkgD,mBAAoB5yB,GAAOnG,IAAImG,GAAOzgB,eACtCszC,qBAAsB7yB,GAAOnG,IAAImG,GAAOzgB,eACxCuzC,kBAAmB9yB,GAAOnG,IAAImG,GAAOzgB,eACrCwzC,iBAAkB/yB,GAAOrgB,SAAS8Z,EAAU,iBAEhDu5B,0BAA2B,CACvBC,UAAWz5B,EAAW,CAAE1U,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvEouC,YAAalzB,GAAOzgB,cACpB4zC,oBAAqBnzB,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACnD+M,OAAQzG,GAAOxd,WAAW,CAAEN,SAAS,IACrC1S,KAAMywB,GAAS2rB,iBAEnBwH,cAAe35B,EAAU,wBACzB45B,cAAe55B,EAAU,yBAE7B0nB,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAW5nB,EAAU,eACrB6nB,YAAa7nB,EAAU,eACvB8nB,WAAY9nB,EAAU,eACtB+nB,iBAAkB/nB,EAAU,eAC5BgoB,QAASzhB,GAAOnG,IAAImG,GAAOzgB,gBAE/BmiC,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBzzC,MAAOsrB,EAAU,gBAErBooB,iBAAkB,CACd1zC,MAAOsrB,EAAU,gBAErB65B,4BAA6B,CACzBxE,8BAA+B9uB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC1F6gD,cAAetzB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,KACnD8gD,aAAcvzB,GAASurB,cAAc,CAAE3rC,IAAK,EAAGnN,IAAK,KACpD+gD,uCAAwCzzB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzEghD,qBAAsBzzB,GAASurB,cAAc,CAAE3rC,IAAK,GAAKnN,IAAK,KAC9DihD,qBAAsB1zB,GAASurB,cAAc,CAAE3rC,IAAK,GAAKnN,IAAK,KAC9DkhD,WAAY3zB,GAASurB,cAAc,CAAE3rC,IAAK,EAAGnN,IAAK,IAClDmhD,oBAAqB7zB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACrEohD,uBAAwB9zB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE7DovC,qCAAsC,CAClC/C,eAAgBtlB,EAAU,yBAE9BsoB,qCAAsC,CAClC5zC,MAAOsrB,EAAU,eACjB7kB,OAAQ6kB,EAAU,eAClB2lB,OAAQnf,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAEhDsvC,+BAAgCzD,EAChC2D,gBAAiBvC,EACjBwC,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAezC,EACf0C,aAAc1C,GAElB2C,4BAA6B,CACzB3L,SAAU5W,GAAOrgB,SAASqgB,GAAOtG,WAAW,CACxC8B,OAAQwE,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzCsqB,QAAS4iB,KAEbxsC,QAASwsC,GAEbmU,iCAAkC,CAC9BzU,QAAStf,GAAOrgB,SAASwvC,IAE7B6E,wBAAyB,CACrBC,iCAAkCj0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAClFwhD,YAAal0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7DyhD,wBAAyBn0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACzE0hD,uBAAwBp0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxE2hD,oBAAqBr0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACrE4hD,4BAA6Bt0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7E6hD,gCAAiCv0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACjF8hD,gCAAiCx0B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACjF+hD,iBAAkBj7B,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACtEuvC,oBAAqBj7B,EAAU,wBAC/Bk7B,4BAA6Bl7B,EAAU,wBACvCuD,QAAS4iB,GAEbgV,0BAA2BjV,EAC3B6C,uBAAwB,CACpBj5B,MAAO0W,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,OAE/C+vC,qBAAsB,CAClB5Y,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDgwC,yBAA0B,CACtBC,SAAUlpB,EAAU,wBACpBmpB,SAAU5iB,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,iBAC/CopB,SAAU7iB,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,iBAC/CqpB,YAAa9iB,GAAOnG,IAAImG,GAAOrgB,SAAS8Z,EAAU,kBAEtDspB,mCAAoC,CAChCnM,SAAU5W,GAAOrgB,SAASigC,IAE9BiV,4BAA6B,CACzBC,eAAgB90B,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC3EqiD,0BAA2B/0B,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACtFsiD,uBAAwBh1B,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACnFuiD,2BAA4Bj1B,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,MAE5EswC,2BAA4B,CACxB70C,MAAOsrB,EAAU,eACjBwpB,WAAYjjB,GAAOxd,WAAW,CAAEN,SAAS,IACzCghC,WAAYljB,GAAOxd,WAAW,CAAEN,SAAS,IACzCihC,qBAAsBnjB,GAAOzgB,cAC7B6jC,aAAcpjB,GAAOrgB,SAAS6Z,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAEtFk+B,iBAAkB,CACdE,aAAcvjB,GAAOnG,IAAImG,GAAOzgB,eAChC21C,WAAYl1B,GAAOnG,IAAImG,GAAOzgB,eAC9BikC,aAAc/pB,EAAU,gBACxB07B,cAAe17B,EAAU,wBACzB27B,iBAAkB37B,EAAU,wBAC5BgqB,eAAgBhqB,EAAU,wBAC1B47B,iBAAkB57B,EAAU,wBAC5BkqB,aAAc3jB,GAAOtG,WAAW,CAC5B1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1Dy+B,YAAa5jB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7DmxC,cAAe7jB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC/DoxC,cAAe9jB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC9DstB,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXqyC,iCAAkC,CAC9BC,YAAat1B,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,KACjD8iD,sBAAuBx1B,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,QAGnF,CAAE7V,QAAS,iBACd+5C,eAAgB/jB,GAAOtG,WAAW,CAC9B1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAC1Di6B,OAAQnf,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,KAC5CoH,OAAQmmB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAC3CstB,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACX+gC,gCAAiC,CAC7B/Q,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DuxC,gCAAiC,CAC7BhR,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DwxC,iCAAkC,CAC9BjR,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DyxC,kCAAmC,CAC/BlR,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5D0xC,qCAAsC,CAClCC,aAAcpkB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAEtD4xC,gCAAiC,CAC7BrR,OAAQhT,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MAEhD+iD,yCAA0C,CACtCC,eAAgBz1B,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,MACpDijD,wBAAyB31B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE7E6xC,kCAAmC,CAC/BC,aAAcvkB,GAAS2rB,YAAY,CAAE/rC,IAAK,EAAGnN,IAAK,QAG3D,CAAE1I,QAAS,iBAAkB6Z,sBAAsB,IACtD4gC,WAAYzkB,GAAOrgB,SAASqgB,GAAOtG,WAAW,CAC1C1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXyhC,yBAA0B,CACtBC,SAAUlrB,EAAU,yBAExBmrB,oBAAqB,CACjB/a,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDmyC,kBAAmB,CACfhb,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAGvD,CAAE1I,QAAS,qBAElB4rD,6BAA8B,CAC1BC,mBAAoB71B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACpEojD,8BAA+B91B,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC/EqjD,yCAA0C/1B,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE/EsjD,6BAA8B3G,EAC9B4G,yCAA0C5G,IAE/C,CAAErlD,QAAS,aACf,CAAEA,QAAS,YAAc,CACxBoJ,QAAS,KAAO,CACZpK,KAAM,sBACN4W,OAAQ,CACJqgC,UAAW,CACPj3C,KAAM,kBACN4W,OAAQ,CACJ2J,MAAO,IAGfyT,QAAS,CACLh0B,KAAM,iBACN4W,OAAQ,CACJ0jC,gBAAiB,EACjBC,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3E,OAAQ,EACRtlC,OAAQ,EACRm5B,OAAQ,aAOxB3Z,SAAS,eAAgB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC1D1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1D2/B,mBAAoB9kB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAC/DstB,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACX8hC,oCAAqC,CACjCha,MAAO/K,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClEsyC,WAAYhlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACvEuyC,WAAYjlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE3EwyC,sCAAuC,CACnCna,MAAO/K,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClEyyC,YAAanlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACxEsyC,WAAYhlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACvE0yC,YAAaplB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACxEuyC,WAAYjlB,GAAOnG,IAAImG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,SAGhF,CAAEmR,sBAAsB,IAAS,CAChCzQ,QAAS,KAAO,CACZpK,KAAM,2CAGNswB,SAAS,uBAAwB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAClE1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yCACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXizC,0CAA2C,CACvCC,SAAU38B,IACVjX,OAAQ0d,GAAS2rB,cACjBj/B,OAAQ8M,EAAU,yBAEtB4rB,mCAAoC,CAChCl3C,MAAOsrB,EAAU,gBAErB6rB,kCAAmC,CAC/Bn3C,MAAOsrB,EAAU,gBAErB8rB,oCAAqC,CACjClnC,QAAS2hB,GAAOrgB,SAASqgB,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAClD+M,OAAQzG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDrQ,KAAMiqB,EAAU,iBAChB,CACArmB,QAAS,KAAO,CACZ5D,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrCoJ,QAAS,KAAO,CACZpK,KAAM,yCAGNswB,SAAS,eAAgB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC1D1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iCACzD6a,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,UACzBo3B,GAAO/c,MAAO,CACXuiC,0BAA2B,CACvBjyB,KAAM0M,GAAS2rB,YAAY,CAAE/rC,IAAK,OAG3C,CAAE7V,QAAS,iBAAmB,CAC7BoJ,QAAS,KAAO,CACZpK,KAAM,gDC1clBmN,OAAOsC,eAAektC,GAAS,aAAc,CAAEx5C,OAAO,qCACnB,EACnC,MAAM6zB,GAASpkB,GACTqkB,GAAWpkB,+BACjB,SAAkC6I,EAASO,SACjCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5D7pB,KAAMmwB,GAAO3gB,IAAIma,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,2BAA4BI,cAAc,KAAW,CACtH9G,QAAUjL,GAASA,EAAK+J,WAAW5U,OAAS,IAEhD2pC,sBAAuBtS,GAAOxd,WAAW,CAAEN,SAAS,IACpDqwB,uBAAwBvS,GAAOxd,WAAW,CAAEN,SAAS,IACrDswB,UAAWxS,GAAOxd,WAAW,CAAEN,SAAS,IACxCk0C,kBAAmBp2B,GAAOxd,WAAW,CAAEN,SAAS,IAChDuwB,uBAAwBzS,GAAOzgB,cAC/B0qC,oBAAqBjqB,GAAOzgB,cAC5B82C,qBAAsBr2B,GAAOzgB,cAC7B2qC,iBAAkBlqB,GAAOzgB,cACzB4qC,kBAAmBnqB,GAAOzgB,cAC1B+2C,kBAAmBt2B,GAAOzgB,cAC1Bk0B,cAAeha,EAAU,eACzBia,cAAeja,EAAU,eACzBiZ,MAAO1S,GAAOtG,WAAW,CACrBswB,MAAOhqB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,OAC3DugC,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxDigC,eAAgB3S,GAAOxd,aACvBowB,eAAgB5S,GAAOxd,aACvBuwB,gBAAiB/S,GAAOxd,WAAW,CAAEN,SAAS,IAC9C8wB,cAAehT,GAAOxd,WAAW,CAAEN,SAAS,IAC5C2wB,sBAAuB7S,GAAOzgB,cAC9BuzB,sBAAuB9S,GAAOnG,IAAImG,GAAOzgB,eACzCg1B,sBAAuBvU,GAAOnG,IAAImG,GAAOzgB,eACzCk1B,UAAWzU,GAAOnG,IAAImG,GAAOzgB,eAC7B2zB,SAAUlT,GAAOtG,WAAW,CACxByZ,SAAUnT,GAAOxd,aACjB4wB,QAASpT,GAAOxd,aAChB6wB,UAAWrT,GAAOxd,aAClB8wB,SAAUtT,GAAOxd,eAErBgxB,aAAcxT,GAAOtG,WAAW,CAC5B9kB,OAAQorB,GAAOxd,WAAW,CAAEN,SAAS,IACrCqR,KAAMyM,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C/F,OAAQkmB,GAAOxd,WAAW,CAAEN,SAAS,MAEzCqxB,UAAWvT,GAAOtG,WAAW,CACzB9kB,OAAQorB,GAAOxd,WAAW,CAAEN,SAAS,IACrCqR,KAAMyM,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C/F,OAAQkmB,GAAOxd,WAAW,CAAEN,SAAS,QAG7C40B,WAAYrd,EAAU,yBACvB,CAAEzvB,QAAS,wBAA8B,CACxCoJ,QAAS,IAAM6sB,GAASmU,qBACxBh3B,SAAU,CAAC5J,EAAMrH,EAAOoO,EAAQ0B,SACxBhC,EAAIiC,EAAIC,EAAIC,SAE0D,UAA/DjQ,SADHsI,EAAK2I,SAAS5J,EAAMrH,EAAOoO,EAAQ0B,SACK,EAAS9P,EAAMumC,aAA0B,IAAPz4B,OAAgB,EAASA,EAAG+vC,QAA+E,UAA/D79C,MAAAA,OAAqC,EAASA,EAAMumC,aAA0B,IAAPx2B,OAAgB,EAASA,EAAG+2B,QAAU,QAChO/0B,IAAI1K,EAAK5K,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,UAA/DuD,MAAAA,OAAqC,EAASA,EAAMumC,aAA0B,IAAPv2B,OAAgB,EAASA,EAAG82B,QAAU,IAAO,KACpH/0B,IAAI1K,EAAK5K,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,UAA/DuD,MAAAA,OAAqC,EAASA,EAAMumC,aAA0B,IAAPt2B,OAAgB,EAASA,EAAG4tC,OAAS,IAAO,KACnH9rC,IAAI1K,EAAK5K,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEuD,UAGPmtB,SAAS,uBAAwB0G,GAAOtG,WAAW,CACvDksB,WAAY5lB,GAAOnG,IAAImG,GAAOtG,WAAW,CACrC+E,SAAUuB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC1DihC,OAAQ3T,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxD6W,MAAOyW,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,UAE3DokC,WAAY9W,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAAmC6a,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC3ImsB,QAAS7lB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACzDozC,WAAY9lB,GAAO3gB,IAAI2gB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QAAU+B,IAAU,CACvF2I,SAAU,CAAC5J,EAAMrH,EAAOoO,EAAQ0B,KACxBzI,EAAKsF,MAAMlQ,KAAK,WAAWsR,OAAS/N,KAC7B+R,IAAI1K,EAAM,oCAEdiB,EAAK2I,SAAS5J,EAAMrH,EAAOoO,EAAQ0B,QAGlD8pC,KAAM/lB,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC/C,CAAE7V,QAAS,wBAA0B,CACpCoJ,QAAS,KAAO,CACZyyC,QAAS,GACTC,WAAY,EACZC,KAAM,YAIVzsB,SAAS,kBAAmB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC7DW,MAAOb,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D8tB,OAAQjT,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAChD,CACAzM,QAAS,KAAO,CACZinB,MAAO,kBACP4Y,OAAQ,kBCpGpB98B,OAAOsC,eAAeutC,GAAS,aAAc,CAAE75C,OAAO,wCAChB,EACtC,MAAM6zB,GAASpkB,kCACf,SAAqC8I,EAASO,SACpCuU,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7CuhC,EAAqB,CACvBC,WAAY1sB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6BAChEoO,KAAMyM,GAAOxd,WAAW,CAAEN,SAAS,OAE/BoX,SAAS,+BAAgC0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC1E1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DvF,OAAQogB,GAAOtG,WAAW,EACrBsG,GAAOhd,QAAS,CAAC,MAAO,CAAEpa,KAAM,UAChCo3B,GAAO/c,MAAO,CACXkjC,4BAA6BF,EAC7BG,4BAA6B,CACzBvc,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD2zC,sBAAuB,CACnBr9C,KAAMwwB,EAAW,CAAE1U,KAAM,CAAC,SAAU,UACpC+kB,YAAa7J,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD6jD,0BAA2B,CACvBtjB,OAAQxZ,EAAU,oBAEtB6sB,uBAAwB,CACpBC,WAAY/sB,EAAW,CAAE1U,KAAM,CAAC,OAAQ,UACxC0hC,kBAAmBxmB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACpD+zC,oBAAqBzmB,GAAOxd,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE1Dg0C,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAaptB,EAAW,CAAE1U,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpG+hC,sBAAuB,CACnBC,WAAY9mB,GAAOnG,IAAImG,GAAOzgB,gBAElCwnC,oBAAqBd,IAE1B,CAAEj8C,QAAS,oBAAqB6Z,sBAAsB,KAC1D,CAAE7Z,QAAS,sBAAwB,CAClCoJ,QAAS,KAAO,CACZpK,KAAM,4BACN4W,OAAQ,CACJsmC,WAAY,2BACZ3yB,KAAM,mBC9CtBpd,OAAOsC,eAAeuuC,GAAS,aAAc,CAAE76C,OAAO,sCAClB,EACpC,MAAM6zB,GAASpkB,gCACf,SAAmC8I,EAASO,SAClCuU,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/CwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,KAC3C4U,SAAS,6BAA8B0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACxE1wB,KAAMwwB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1DvF,OAAQogB,GAAOtG,WAAW,CACtButB,aAAcxtB,EAAU,eACxBytB,eAAgBztB,EAAU,eAC1B0tB,oBAAqB1tB,EAAU,gBAChC,CAAEzvB,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChCoJ,QAAS,KAAO,CACZpK,KAAM,oBACN4W,OAAQ,CACJqnC,aAAc,CACVttB,KAAM,wBACNC,WAAY,CACRwtB,MAAO,UAGfF,eAAgB,CACZvtB,KAAM,kBAEVwtB,oBAAqB,CACjBxtB,KAAM,qCC3B1BxjB,OAAOsC,eAAe4uC,GAAS,aAAc,CAAEl7C,OAAO,oCACpB,EAClC,MAAM6zB,GAASpkB,GAETusC,GAAkBtsC,8BACxB,SAAiC6I,EAASO,SAChCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,gBAAiB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC3D7pB,KAAM2pB,IACN5Y,SAAU4Y,IACV2L,SAAUnF,GAAOrgB,SAAS8Z,EAAU,+BACrC,CAAEzvB,QAAS,kBAAoB,CAC9BoJ,QAAS,KAAO,CACZwN,SAAU,kBACVukB,SAAU,CACN,CACIsB,OAAQ,EACRrtB,QAAS,CACLmuC,aAAc,gCACdC,WAAY,QACZjL,WAAY,4BAMxBjjB,SAAS,4BAA6B0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CACvE+M,OAAQzG,GAAOxd,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDzG,QAASqgB,EAAU,qBACpB,CAAEjb,SAAU,SAAW,CACtBpL,QAAS,KAAO,CACZqzB,OAAQ,EACRrtB,QAAS,CACLmuC,aAAc,gCACdC,WAAY,QACZjL,WAAY,0BAIhBjjB,SAAS,mBAAoB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC9D6tB,aAAc/tB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qCAClEqiC,WAAYhuB,EAAW,CAAE1U,KAAM,CAAC,QAAS,uBACxCkb,GAAOhd,QAAS,CAAC,CAAEpa,KAAM,kBACzBo3B,GAAO/c,MAAO,CACXwkC,iCAAkC,CAC9BzqB,QAASxD,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAEjEuiC,uCAAwC,CACpC1zC,SAAUwlB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9Do3B,WAAY4L,GAAgBb,YAEhCK,8BAA+B,CAC3BxiB,SAAUnF,GAAOrgB,SAAS8Z,EAAU,sBAExCmuB,gCAAiC,CAC7B5zC,SAAUwlB,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9Do3B,WAAY4L,GAAgBb,cAGrC,CAAEt9C,QAAS,mBAAoB6Z,sBAAsB,IAAS,CAC7DzQ,QAAS,KAAO,CACZm0C,aAAc,gCACdC,WAAY,QACZjL,WAAY,wBChExBpmC,OAAOsC,eAAeovC,GAAS,aAAc,CAAE17C,OAAO,gCACxB,EAC9B,MAAM27C,GAAUlsC,GACVmsC,GAAWlsC,GACXmsC,GAAcjsC,GACdksC,GAAYplC,GACZqlC,GAAkBplC,GAClBqlC,GAAkB7hC,GAClB8hC,GAAqB7hC,GACrB8hC,GAAmB7hC,GACnB8hC,GAAiB7hC,0BACvB,SAA6B/B,EAASO,MAElB2jC,yBAAyBlkC,EAASO,MAC1CsjC,iBAAiB7jC,EAASO,MACzBujC,kBAAkB9jC,EAASO,MACxBwjC,qBAAqB/jC,EAASO,MAChCyjC,mBAAmBhkC,EAASO,MACtB0jC,yBAAyBjkC,EAASO,MAC/B4jC,4BAA4BnkC,EAASO,MACvC6jC,0BAA0BpkC,EAASO,MACrC8jC,wBAAwBrkC,EAASO,cCrBpD9O,OAAOsC,eAAeuwC,GAAS,aAAc,CAAE78C,OAAO,qCACnB,EACnC,MAAM6zB,GAASpkB,+BACf,SAAkC8I,EAASO,SACjCwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,KAC7CqU,SAAS,iBAAkB0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,CAC5DuvB,kBAAmBjpB,GAAOzgB,cAC1B2pC,YAAalpB,GAAOzgB,cACpBgsB,KAAMvL,GAAOxd,WAAW,CAAEN,SAAS,IACnCinC,WAAYnpB,GAAOne,QAAQ2X,EAAW,CAAExU,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBsU,EAAU,eAC7G,CAAEzvB,QAAS,mBAAqB,CAC/BoJ,QAAS,WACCm4B,EAAO54B,KAAKskB,MAAuB,WAAjBtkB,KAAKumB,UAA2B,iBACjD,CACH+vB,mBAAmB,EACnBC,aAAa,EACb3d,KAAAA,EACA4d,WAAY,CACRrV,sBAAuB,CACnB9qC,KAAM,sBACNysC,UAAW,CACPzsC,KAAM,kBACNuiC,KAAAA,EACAsK,aAAc,CACV7sC,KAAM,4BACNuiC,KAAAA,GAEJoK,SAAU,wBAGlB3B,uBAAwB,CACpBhrC,KAAM,uBACNysC,UAAW,CACPzsC,KAAM,kBACNuiC,KAAAA,EACAsK,aAAc,CACV7sC,KAAM,wBACNuiC,KAAAA,EACA4K,eAAgB,CACZgB,eACAC,WAAY,CAAC,EAAK,IAEtBnB,eAAgB,CACZkB,eACAC,WAAY,CAAC,EAAK,IAEtBhB,gBAAiB,CACbe,eACAC,WAAY,CAAC,EAAK,IAEtBlB,kBAAmB,CACfiB,eACAC,WAAY,CAAC,EAAK,IAEtBf,OAAQ,CACJ,CACI3M,WAAY,CAAEqN,SAAU,EAAKG,UAAW,EAAKp9B,OAAQ,EAAKk9B,YAAa,EAAKC,SAAU,GACtFla,MAAO,2BAEX,CACI2M,WAAY,CAAEqN,SAAU,EAAKG,UAAW,EAAKp9B,OAAQ,EAAKk9B,YAAa,EAAKC,cAC5Ela,MAAO,8BAEX,CACI2M,WAAY,CAAEqN,SAAU,EAAKG,UAAW,EAAKp9B,OAAQ,EAAKk9B,YAAa,GAAKC,SAAU,GACtFla,MAAO,4BAEX,CACI2M,WAAY,CAAEqN,SAAU,EAAKG,UAAW,EAAKp9B,OAAQ,KAAOk9B,YAAa,EAAKC,SAAU,IACxFla,MAAO,2BAEX,CACI2M,WAAY,CAAEqN,SAAU,EAAKG,UAAW,EAAKp9B,OAAQ,KAAOk9B,gBAAmBC,SAAU,GACzFla,MAAO,6BAInB4Y,SAAU,qBAGlBxB,oBAAqB,CACjBnrC,KAAM,oBACNysC,UAAW,CACPzsC,KAAM,kBACNuiC,KAAAA,EACAsK,aAAc,CACV7sC,KAAM,oBACNuiC,KAAAA,GAEJoK,SAAU,yBC1FtCx/B,OAAOsC,eAAek3B,GAAS,aAAc,CAAExjC,OAAO,wBAChC,EACtB,MAAMyjC,GAAgBh0B,GAChBi0B,GAAWh0B,GACXokB,GAAWlkB,GACX+zB,GAAcjtB,GACdumC,GAActmC,GACdumC,GAAkB/iC,GAClBkwC,GAAiBjwC,GACjBwpB,GAAcvpB,GACdwpB,GAAevpB,GACfyZ,GAAexZ,GACfupB,GAAWtpB,GACXupB,GAAStpB,GACTupB,GAAkBtpB,GAClByiC,GAAaxiC,GACbyiC,GAAkBxiC,kBACxB,SAAqBrC,EAASO,MAEjBmrB,kBAAkB1rB,EAASO,MACtBqrB,uBAAuB5rB,EAASO,MACrCsrB,kBAAkB7rB,EAASO,MACxBurB,qBAAqB9rB,EAASO,MAC1BukC,yBAAyB9kC,EAASO,MACtCwkC,qBAAqB/kC,EAASO,MAC3BwxC,wBAAwB/xC,EAASO,MACpCwrB,qBAAqB/rB,EAASO,MAC7ByrB,sBAAsBhsB,EAASO,MAC/BorB,sBAAsB3rB,EAASO,MACnC0rB,kBAAkBjsB,EAASO,MAC7B2rB,gBAAgBlsB,EAASO,MAChB4rB,yBAAyBnsB,EAASO,MACvCykC,oBAAoBhlC,EAASO,MACxB0kC,yBAAyBjlC,EAASO,ICjCtD,IAAIe,GAAmBjc,IAAQA,GAAKic,yBAA4B5P,OAAU,SAAS7N,EAAGmD,EAAGF,EAAGya,QAC7E,IAAPA,MAAuBza,UACpBiN,eAAelQ,EAAG0d,EAAI,CAAEC,YAAY,EAAMhM,IAAK,kBAAoBxO,EAAEF,OAC1E,SAASjD,EAAGmD,EAAGF,EAAGya,QACT,IAAPA,MAAuBza,KACzBya,GAAMva,EAAEF,KAEVslC,GAAsB/mC,IAAQA,GAAK+mC,4BAA+B16B,OAAU,SAAS7N,EAAGiF,UACjFiL,eAAelQ,EAAG,UAAW,CAAE2d,YAAY,EAAM/Z,MAAOqB,KAC9D,SAASjF,EAAGiF,aACEA,IAEfujC,GAAgBhnC,IAAQA,GAAKgnC,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9B/kB,EAAS,MACF,MAAP+kB,UAAsBxlC,KAAKwlC,EAAe,YAANxlC,GAAmB2K,OAAOkQ,eAAe5W,KAAKuhC,EAAKxlC,OAAoBygB,EAAQ+kB,EAAKxlC,aACzGygB,EAAQ+kB,GACpB/kB,GAEX9V,OAAOsC,eAAey4B,GAAS,aAAc,CAAE/kC,OAAO,IACtD,4CAA8C,EAC9C,MAAM6zB,GAASpkB,GACTu1B,GAAgBt1B,GAChBu1B,GAAYr1B,GAClB,sBAAsBg1B,GAAaluB,IAMnC,yBALA,iBACUoC,EAAc,IAAI+a,GAAOqR,6BACjBC,gBAAgBrsB,GACvBA,GAsBXssB,iBALA,SAAoBtsB,SACVP,EAAU,IAAIsb,GAAOwR,yBACjBC,YAAY/sB,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4gB,GAAS,aAAc,CAAEltB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACTqU,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,cAChCjY,UAAa,CAAC,CACN0lB,UAAW,8BACX1M,UAAWhtB,MAGxB,CAAExD,QAAS,iBACNsvB,SAAS,cAAe0G,GAA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,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,WAEQA,SAAS,eAAgB,CACjC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,0BCpXRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,cAChCjY,UAAa,CAAC,CACN0lB,UAAW,8BACX1M,UAAWhtB,MAGxB,CAAExD,QAAS,iBACNsvB,SAAS,cAAe0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,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iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,6BAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,WAEQA,SAAS,eAAgB,CACjC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,0BCjYRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB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"} \ No newline at end of file diff --git a/assets/vendor.ae3ccf68.js.map b/assets/vendor.ae3ccf68.js.map deleted file mode 100644 index ca3b6135..00000000 --- a/assets/vendor.ae3ccf68.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vendor.ae3ccf68.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/deepslate-1.18/dist/deepslate.esm.js","../../node_modules/brace/index.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/mode/yaml.js","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@giscus/react/dist/index.es.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(//)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StructureSet = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structure_overrides: core_1.ListNode(StructureSet)\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4064 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2032, max: 2031 }),\r\n height: core_1.NumberNode({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 9;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = core_1.NumberNode({ min: -1000000, max: 1000000 });\r\n const YRange = core_1.NumberNode({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: core_1.NumberNode(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: core_1.ObjectNode({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' }),\r\n adapt_noise: core_1.Opt(core_1.BooleanNode()),\r\n spawn_overrides: core_1.MapNode(StringNode({ enum: 'mob_category' }), core_1.ObjectNode({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', core_1.ObjectNode({\r\n structures: core_1.ListNode(core_1.ObjectNode({\r\n structure: Common_1.Tag({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: core_1.NumberNode({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n DensityFunction_1.initDensityFunctionSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n StructureSet_1.initStructureSetSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
    \");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"
    \"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"
    \"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"
    \"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
    \");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
    \"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"
    \",\n \"
    \"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
    \"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
    \");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n blockquote(quote) {\n return '
    \\n' + quote + '
    \\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","$0","$1","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","equiv","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt2","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","remaining","parsed","blitBuffer","byteArray","asciiToBytes","units","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","swap16","swap32","swap64","slowToString","inspect","INSPECT_MAX_BYTES","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","bStr","runHi","pivotIndex","hint","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","dest","count1","count2","customCursor","customDest","alphabeticalCompare","makeAscendingRun","TimSort","minRun","minRunLength","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","move_comments","remove_comments","begin","item_length","CommentArray","items_length","source_index","real_source_index","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","started","parse_object","parse_array","negative","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\\","quote","process_comments","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","one","two","gap","trimRight","join_content","object_stringify","after_comma","sv","AFTER_COLON","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","collectType","compileMap","Schema","DEFAULT","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","toISOString","NodeBuffer","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","_function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","ESCAPE_SEQUENCES","7","10","11","12","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","moreIndented","lineRe","nextLF","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","displayName","isReactComponent","__f","isPureReactComponent","only","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","ReactCurrentDispatcher","readContext","performance","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cn","createRef","Fragment","isValidElement","findDOMNode","PureComponent","memo","forwardRef","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","querySelector","prepend","repo","repoId","categoryId","reactionsEnabled","emitMetadata","inputPosition","searchParams","URLSearchParams","localStorage","getItem","setItem","replaceState","removeItem","giscus","resizeHeight","scrolling","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","langPrefix","mangle","pedantic","sanitize","sanitizer","smartLists","smartypants","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","fn","_onfade","onfade","_onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_inactiveSound","soundId","_loadQueue","seek","_seek","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","linearRampToValueAtTime","_startFadeInterval","isGroup","stepLen","lastTick","_fadeTo","tick","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","events","isId","task","_drain","cnt","_panner","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","__default","loadBuffer","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","positionX","setTargetAtTime","positionY","positionZ","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","spacers","hasMultipleLineBreaks","pre","def","splitCells","align","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","itemBody","checkbox","renderers","tablecell","tablerow","listitem","marked","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"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,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eA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A,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,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AS,aAAc,CAAE/kC,OAAO,IACtD,4CAA8C,EAC9C,MAAM6zB,GAASpkB,GACTu1B,GAAgBt1B,GAChBu1B,GAAYr1B,GAClB,sBAAsBg1B,GAAaluB,IAMnC,yBALA,iBACUoC,EAAc,IAAI+a,GAAOqR,6BACjBC,gBAAgBrsB,GACvBA,GAsBXssB,iBALA,SAAoBtsB,SACVP,EAAU,IAAIsb,GAAOwR,yBACjBC,YAAY/sB,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4gB,GAAS,aAAc,CAAEltB,OAAO,4BAC5B,qBAC1B,SAAyB8Y,KACTqU,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,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ACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,cAChCjY,UAAa,CAAC,CACN0lB,UAAW,8BACX1M,UAAWhtB,MAGxB,CAAExD,QAAS,iBACNsvB,SAAS,cAAe0G,GAA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,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,WAEQA,SAAS,eAAgB,CACjC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,0BCpXRnjB,OAAOsC,eAAesnB,GAAS,aAAc,CAAE5zB,OAAO,mCACrB,EACjC,MAAM6zB,GAASpkB,6BACf,SAAgC8I,EAASO,SAC/BwU,EAAYuG,GAAOvb,UAAU/S,UAAK,EAAWgT,GAC7C8U,EAAawG,GAAOpb,WAAWlT,UAAK,EAAWuT,GAC/C2vB,EAAkB5U,GAAOze,WAAW,CACtC,CACIvY,KAAM,SACNyL,KAAMurB,GAAOnG,IAAIJ,EAAU,qBAC3BjY,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAV1O,EAAE,UAAuB,IAAPyM,OAAgB,EAASA,EAAGugB,iBAA8B,IAAPte,EAAgBA,EAAM,KAE7I,CACIlT,KAAM,OACNyL,KAAMurB,GAAOrgB,SAAS8Z,EAAU,cAChCjY,UAAa,CAAC,CACN0lB,UAAW,8BACX1M,UAAWhtB,MAGxB,CAAExD,QAAS,iBACNsvB,SAAS,cAAe0G,GAAO3gB,IAAI2gB,GAAOtG,WAAW,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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 6cf0e1a2..a789092e 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -18,7 +18,7 @@ - Technical Changelog Minecraft 1.17, 1.18, 1.18.2 + Technical Changelog Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/dimension-type/index.html b/dimension-type/index.html index 5fb09c90..f35dd309 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -18,7 +18,7 @@ - Dimension Type Generator Minecraft 1.17, 1.18, 1.18.2 + Dimension Type Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/dimension/index.html b/dimension/index.html index be72961f..9bf89ae8 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -18,7 +18,7 @@ - Dimension Generator Minecraft 1.17, 1.18, 1.18.2 + Dimension Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/index.html b/index.html index 08c58e42..c8366cd4 100644 --- a/index.html +++ b/index.html @@ -29,8 +29,8 @@ BigInt64Array = function() { } } - - + + diff --git a/item-modifier/index.html b/item-modifier/index.html index dbdaf0e2..19889bc7 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -18,7 +18,7 @@ - Item Modifier Generator Minecraft 1.17, 1.18, 1.18.2 + Item Modifier Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/loot-table/index.html b/loot-table/index.html index efe89665..541a64f1 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -18,7 +18,7 @@ - Loot Table Generator Minecraft 1.17, 1.18, 1.18.2 + Loot Table Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/predicate/index.html b/predicate/index.html index 32ddd2e2..a825bd47 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -18,7 +18,7 @@ - Predicate Generator Minecraft 1.17, 1.18, 1.18.2 + Predicate Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/recipe/index.html b/recipe/index.html index 322c91f5..2bcced67 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -18,7 +18,7 @@ - Recipe Generator Minecraft 1.17, 1.18, 1.18.2 + Recipe Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/sounds/index.html b/sounds/index.html index f051ae03..9d6fced6 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -18,7 +18,7 @@ - Sound Explorer Minecraft 1.17, 1.18, 1.18.2 + Sound Explorer Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/versions/index.html b/versions/index.html index 0d7a857f..9b1f6883 100644 --- a/versions/index.html +++ b/versions/index.html @@ -18,7 +18,7 @@ - Versions Explorer Minecraft 1.17, 1.18, 1.18.2 + Versions Explorer Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/world/index.html b/world/index.html index 79c2042a..1784b6f3 100644 --- a/world/index.html +++ b/world/index.html @@ -18,7 +18,7 @@ - World Settings Generator Minecraft 1.17, 1.18, 1.18.2 + World Settings Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index 578bdd3c..61a5b0fc 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -18,7 +18,7 @@ - Biome Generator Minecraft 1.17, 1.18, 1.18.2 + Biome Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index e09190ba..55940735 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -18,7 +18,7 @@ - Carver Generator Minecraft 1.17, 1.18, 1.18.2 + Carver Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html index aaa74a61..c5d92b7d 100644 --- a/worldgen/density-function/index.html +++ b/worldgen/density-function/index.html @@ -18,7 +18,7 @@ - Density Function Generator Minecraft 1.18.2 + Density Function Generator Minecraft 1.18.2, 1.19 - - + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index f0d24b20..0e304856 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -18,7 +18,7 @@ - Feature Generator Minecraft 1.17, 1.18, 1.18.2 + Feature Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/flat-world-preset/index.html b/worldgen/flat-world-preset/index.html new file mode 100644 index 00000000..e02e8a33 --- /dev/null +++ b/worldgen/flat-world-preset/index.html @@ -0,0 +1,40 @@ + + + + + + + Flat World Preset Generator Minecraft 1.19 + + + + + + + + +
    + + + diff --git a/worldgen/index.html b/worldgen/index.html index 148a972e..0b25f181 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -18,7 +18,7 @@ - Worldgen Generators Minecraft 1.17, 1.18, 1.18.2 + Worldgen Generators Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index c4648fc8..db6831a2 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -18,7 +18,7 @@ - Noise Settings Generator Minecraft 1.17, 1.18, 1.18.2 + Noise Settings Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 9696be48..1f223e6f 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -18,7 +18,7 @@ - Noise Generator Minecraft 1.18, 1.18.2 + Noise Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index c01ce51c..91e71b44 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -18,7 +18,7 @@ - Placed Feature Generator Minecraft 1.18, 1.18.2 + Placed Feature Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index ab3764e1..06aeb8bf 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -18,7 +18,7 @@ - Processor List Generator Minecraft 1.17, 1.18, 1.18.2 + Processor List Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 6ec8e8b5..9f1daf3b 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -18,7 +18,7 @@ - Structure Feature Generator Minecraft 1.17, 1.18, 1.18.2 + Structure Feature Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html index f43e8c6f..080c3b01 100644 --- a/worldgen/structure-set/index.html +++ b/worldgen/structure-set/index.html @@ -18,7 +18,7 @@ - Structure Set Generator Minecraft 1.18.2 + Structure Set Generator Minecraft 1.18.2, 1.19 - - + + diff --git a/worldgen/structure/index.html b/worldgen/structure/index.html new file mode 100644 index 00000000..3c50a942 --- /dev/null +++ b/worldgen/structure/index.html @@ -0,0 +1,40 @@ + + + + + + + Structure Generator Minecraft 1.19 + + + + + + + + +
    + + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index b90c4085..5a85f1e4 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -18,7 +18,7 @@ - Surface Builder Generator Minecraft 1.17, 1.18, 1.18.2 + Surface Builder Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index bd2ffb21..d1c6fca5 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -18,7 +18,7 @@ - Template Pool Generator Minecraft 1.17, 1.18, 1.18.2 + Template Pool Generator Minecraft 1.18, 1.18.2, 1.19 - - + + diff --git a/worldgen/world-preset/index.html b/worldgen/world-preset/index.html new file mode 100644 index 00000000..53720617 --- /dev/null +++ b/worldgen/world-preset/index.html @@ -0,0 +1,40 @@ + + + + + + + World Preset Generator Minecraft 1.19 + + + + + + + + +
    + + +