diff --git a/404.html b/404.html index 25307298..5c5a1147 100644 --- a/404.html +++ b/404.html @@ -20,8 +20,8 @@ 404 - - + + diff --git a/advancement/index.html b/advancement/index.html index 019e6262..063aebdd 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -20,8 +20,8 @@ Advancement Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/assets/index.947e119e.js b/assets/index.947e119e.js new file mode 100644 index 00000000..e65f0e83 --- /dev/null +++ b/assets/index.947e119e.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,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,l=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},s=(e,o)=>t(e,n(o));import{y as c,a as d,s as u,l as m,r as h,b as p,j as g,c as f,d as v,e as _,g as w,L as y,f as b,C as x,M as k,_ as C,X as M,W as A,R as z,h as V,N as I,i as j,I as E,k as O,A as L,m as $,q as P,n as S,o as D}from"./vendor.8214e08f.js";var N,B=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"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","refs":{"mcdata_master":"13355f7"}},{"id":"1.16","refs":{"mcdata_master":"1.16.4","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","refs":{"mcdata_master":"1.17.1","vanilla_datapack_data":"1.17.1-data","vanilla_datapack_summary":"1.17.1-summary"}},{"id":"1.18","refs":{"mcdata_master":"master","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table","maxVersion":"1.17"},{"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/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/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16"},{"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"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"block_predicate_type","minVersion":"1.18"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"float_provider_type","minVersion":"1.17"},{"id":"item"},{"id":"int_provider_type","minVersion":"1.17"},{"id":"height_provider_type","minVersion":"1.17"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"recipe_serializer"},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}');function T({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 H({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&Y[e],t&&d("span",null,t))}function R({icon:e,label:t,large:n,doSelect:o,value:r,placeholder:a,onChange:i}){const l=void 0===i?()=>{}:e=>{const t=e.target.value;null==i||i(t)},s=u(null);return c((()=>{o&&s.current&&s.current.select()}),[o]),d("div",{class:"btn btn-input "+(n?"large-input":""),onClick:e=>e.stopPropagation()},e&&Y[e],t&&d("span",null,t),d("input",{ref:s,type:"text",value:r,onChange:l,placeholder:a}))}function F({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=u(null),l=u(),s=u(),d=u([0,0]),m=u(!1);c((()=>{const e=e=>{l.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===l.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-l.current[0],r=e.offsetY-l.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],m.current||(cancelAnimationFrame(s.current),s.current=requestAnimationFrame((async()=>{m.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),m.current=!1})))),l.current=[e.offsetX,e.offsetY]},a=()=>{l.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const h=u(),p=u(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=p.current+=1;await t(r),a===p.current&&n.putImageData(r,0,0)},{canvas:i,redraw:h.current}}function J(){const[e,t]=m(!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 W(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function G({icon:e,label:t,relative:n,tooltip:o,children:r}){const[a,i]=J();return d("div",{class:"btn-menu"+(!1===n?" no-relative":"")},d(H,s(l({},{icon:e,label:t,tooltip:o}),{onClick:i})),a&&d("div",{class:"btn-group"},r))}!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.generatorEvent=function(e,t){o(n,e,t)}}(N||(N={}));const Y={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"})),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"})),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"})),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"})),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"})),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"})),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 U({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Y.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}let Z;const X={},K=function(e,t){if(!t)return e();if(void 0===Z){const e=document.createElement("link").relList;Z=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in X)return;X[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":Z,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 q=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","download":"Download","duplicate":"Duplicate","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","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide JSON output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","loot_table":"Loot Table","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":"JSON 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.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","remove":"Remove","search":"Search","show_output":"Show JSON output","show_preview":"Show preview","source_placeholder":"Paste JSON content here","switch_generator":"Switch generator","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),Q=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:q});const ee={fallback:q};function te(e,t,...n){var o,r,a,i,l;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!=(l=null!=(i=null!=(a=null==(o=ee[e])?void 0:o[t])?a:null==(r=ee.en)?void 0:r[t])?i:ee.fallback[t])?l:t,n)}async function ne(e){const t=B.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../locales/de.json":return K((()=>import("./de.a5527242.js")),void 0);case"../locales/en.json":return K((()=>Promise.resolve().then((function(){return Q}))),void 0);case"../locales/es.json":return K((()=>import("./es.be1c5183.js")),void 0);case"../locales/fr.json":return K((()=>import("./fr.cc0e1c18.js")),void 0);case"../locales/it.json":return K((()=>import("./it.fd9a8268.js")),void 0);case"../locales/ja.json":return K((()=>import("./ja.8c79487c.js")),void 0);case"../locales/pl.json":return K((()=>import("./pl.3a9fb38c.js")),void 0);case"../locales/pt.json":return K((()=>import("./pt.689bba1d.js")),void 0);case"../locales/ru.json":return K((()=>import("./ru.43cf4da1.js")),void 0);case"../locales/sk.json":return K((()=>import("./sk.586a2a32.js")),void 0);case"../locales/zh-cn.json":return K((()=>import("./zh-cn.97195370.js")),void 0);case"../locales/zh-tw.json":return K((()=>import("./zh-tw.a82e5245.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/de.json":return K((()=>import("./de.f9c3209c.js")),void 0);case"../../node_modules/@mcschema/locales/src/en.json":return K((()=>import("./en.c831bdaf.js")),void 0);case"../../node_modules/@mcschema/locales/src/es.json":return K((()=>import("./es.c83d9c73.js")),void 0);case"../../node_modules/@mcschema/locales/src/fr.json":return K((()=>import("./fr.9b3a1c69.js")),void 0);case"../../node_modules/@mcschema/locales/src/it.json":return K((()=>import("./it.7ff123cd.js")),void 0);case"../../node_modules/@mcschema/locales/src/ja.json":return K((()=>import("./ja.4ae430b9.js")),void 0);case"../../node_modules/@mcschema/locales/src/pl.json":return K((()=>import("./pl.01cb20df.js")),void 0);case"../../node_modules/@mcschema/locales/src/pt.json":return K((()=>import("./pt.31e14993.js")),void 0);case"../../node_modules/@mcschema/locales/src/ru.json":return K((()=>import("./ru.92df5b59.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-cn.json":return K((()=>import("./zh-cn.7cd3f35b.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-tw.json":return K((()=>import("./zh-tw.bae62b5e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../node_modules/@mcschema/locales/src/${e}.json`);ee[e]=l(l({},n.default),o.default)}function oe(e){return"object"==typeof e&&null!==e}const re=e=>("0"+e.toString(16)).substr(-2);function ae(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,re).join("")}function ie(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function le(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new p.Path(["dimensions"]));e.set(new p.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new p.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new p.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new p.Path(["generator","seed"]),t,!0),e.set(new p.Path(["generator","biome_source","seed"]),t)}function se(e){return`/${e}/`.replaceAll("//","/")}function ce(e){const t=e.replace(/^\//,"").replace(/\/$/,"");return B.generators.find((e=>e.url===t))}function de(e){const t=Math.abs(function(e){let t=0;for(let n=0;n>8)%256,(t>>16)%256]}function ue(e){return e*e}function me(e,t,n){return Math.max(e,Math.min(t,n))}function he(e,t,n){return n<0?e:n>1?t:pe(n,e,t)}function pe(e,t,n){return t+e*(n-t)}function ge(e){return e instanceof Error?e.message:`${e}`}const fe=h();function ve(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;olocalStorage.removeItem(`cache_${e}`)));const _e="https://raw.githubusercontent.com/Arcensoth/mcdata",we="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",ye=[{id:"mcdata_master",hash:"12a4bcee3dd49fd94042c5e8cdcb4bb29a42562d",url:_e},{id:"vanilla_datapack_summary",hash:"7e7aec5deaac501b0ed63b1b17d34fbc2878fe84",url:we}];async function be(e,t,n){const o=B.versions.find((t=>t.id===e));o?(console.debug(`[fetchData] ${JSON.stringify(o)}`),o.dynamic&&await Promise.all(ye.filter((e=>localStorage.getItem(`cached_${e.id}`)!==e.hash)).map((async e=>{console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem(`cached_${e.id}`)}' < '${e.hash}' ${e.url}/${o.refs[e.id]}`),await async function(e){try{const t=await caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");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-v1: ${ge(t)}`)}}((t=>t.startsWith(`${e.url}/${o.refs[e.id]}`))),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`),localStorage.setItem(`cached_${e.id}`,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`)}))),await Promise.all([xe(o,t),ke(o,n),Ce(o,t)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(B.versions)}`)}async function xe(e,t){console.debug(`[fetchRegistries] ${e.id}`);const n=B.registries.filter((e=>!e.dynamic)).filter((t=>$e(e.id,t.minVersion,t.maxVersion)));if($e(e.id,void 0,"1.15")){const r=`${_e}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=await Ae(r,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n.slice(10)]=Object.keys(e[n].entries)})),t}));n.forEach((n=>{var o;t.register(n.id,null!=(o=e[n.id])?o:[])}))}catch(o){console.warn("Error occurred while fetching registries:",ge(o))}}else await Promise.all(n.map((async n=>{try{const o=n.path?`${_e}/${e.refs.mcdata_master}/${n.path}/data.min.json`:`${_e}/${e.refs.mcdata_master}/processed/reports/registries/${n.id}/data.min.json`;t.register(n.id,await Ae(o,(e=>e.values)))}catch(o){console.warn(`Error occurred while fetching registry ${n.id}:`,ge(o))}})))}async function ke(e,t){if(console.debug(`[fetchBlockStateMap] ${e.id}`),$e(e.id,void 0,"1.16")){const o=$e(e.id,void 0,"1.15")?`${_e}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${_e}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=await Ae(o,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n]={properties:e[n].properties,default:e[n].states.find((e=>e.default)).properties}})),t}));Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",ge(n))}}else{const o=`${_e}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{const e=await Ae(o);Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",ge(n))}}}async function Ce(e,t){console.debug(`[fetchDynamicRegistries] ${e.id}`);const n=B.registries.filter((e=>e.dynamic)).filter((t=>$e(e.id,t.minVersion,t.maxVersion)));if($e(e.id,"1.16")){const r=`${we}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=await Ae(r);n.forEach((n=>{t.register(n.id,e[n.id])}))}catch(o){console.warn("Error occurred while fetching dynamic registries:",ge(o))}}}async function Me(e,t,n){console.debug(`[fetchPreset] ${t} ${n}`);const o=B.versions.find((t=>t.id===e));try{const e=`${we}/${o.refs.vanilla_datapack_data}/data/minecraft/${t}/${n}.json`,r=await fetch(e);return await r.json()}catch(r){console.warn(`Error occurred while fetching ${t} preset ${n}:`,ge(r))}}async function Ae(e,t=(e=>e)){try{const n=await caches.open("misode-v1");console.debug(`[getData] Opened cache misode-v1 ${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-v1: ${ge(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const ze=["1.15","1.16","1.17","1.18"],Ve={},Ie={},je={1.15:g,1.16:f,1.17:v,1.18:_};let Ee,Oe;async function Le(e){return Ve[e]||(Ve[e]=(async()=>{try{const t=je[e].getCollections(),n={};await be(e,t,n);const o=je[e].getSchemas(t);return Ve[e]={collections:t,schemas:o,blockStates:n},Ve[e]}catch(t){throw new Error(`Cannot get version "${e}": ${ge(t)}`)}})()),Ve[e]}function $e(e,t,n){const o=B.versions.findIndex((t=>t.id===e)),r=t?B.versions.findIndex((e=>e.id===t)):0,a=n?B.versions.findIndex((e=>e.id===n)):B.versions.length-1;return r<=o&&o<=a}const Pe={system:"device_desktop",dark:"moon",light:"sun"};function Se({lang:e,title:t,version:n,theme:o,changeTheme:r,language:a,changeLanguage:i}){const l=te.bind(null,e),s=ce(w());return d("header",null,d("div",{class:"title"},d(y,{class:"home-link",href:"/","aria-label":l("home")},De.home),d("h2",null,t),s&&d(G,{icon:"chevron_down",tooltip:l("switch_generator")},B.generators.filter((e=>e.category===(null==s?void 0:s.category)&&$e(n,e.minVersion))).map((e=>d(H,{label:l(e.id),active:e.id===s.id,onClick:()=>b(se(e.url))}))))),d("nav",null,d("ul",null,d("li",null,d(G,{icon:"globe",tooltip:l("language")},B.languages.map((({code:e,name:t})=>d(H,{label:t,active:e===a,onClick:()=>i(e)}))))),d("li",null,d(G,{icon:Pe[o],tooltip:l("theme")},Object.entries(Pe).map((([e,t])=>d(H,{icon:t,label:l(`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":l("github")},Y.mark_github)))))}const De={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"}))};let Ne,Be,Te;async function He(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];if(!ve(n,Ne)){Ne=fe(n),Be=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new z(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?We:Je;break;case"overworld":e="1.18"===t.version?await async function(){return(await Me("1.18","dimension","overworld")).generator.biome_source}():e}if(e=p.DataModel.unwrapLists(e),"1.18"===t.version)return C.fromJson(e);{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=me(null!=(r=a.firstOctave)?r:-7,-100,-1),new M(new A(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 i=1/0,l="";for(const{biome:n,parameters:s}of e.biomes){const e=ue(s.altitude-a[0])+ue(s.temperature-a[1])+ue(s.humidity-a[2])+ue(s.weirdness-a[3])+ue(s.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),sampleInt(e){return Ke(e,this)}};for(let i=0;i=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=l{et(t,null==e?void 0:e.decorator,n).forEach((t=>Qe(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Qe(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 Qe(t,a.feature,n);Qe(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;Qe(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)}},nt={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),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).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,Ge[me(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>et(t,null==e?void 0:e.outer,n).flatMap((t=>et(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Xe(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!=(i=null==e?void 0:e.baseline)?i: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)=>Xe(t,Math.max(n.seaLevel,Ge[me(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Ge[me(0,63,t[0])]);return Xe(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Xe(t,Math.max(n.seaLevel,Ge[me(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 Xe(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 Xe(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,i;return Xe(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!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Xe(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Xe(t,Ge[me(0,63,t[0])]),magma:(e,t,n)=>Xe(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=Ge[me(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]i?[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)]]:[]}};class ot{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 A(e);this.minLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new V(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new V(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 m=this.chunkCountY-1;m>=0;m-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[m*this.chunkHeight+e]=(i=n,l=o,s=r[m],c=r[m+1],d=a[m],u=a[m+1],pe(l,pe(i,s,c),pe(i,d,u)))}var i,l,s,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,i=r/this.settings.sampling.y_factor,l=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let s=0;s<=this.chunkCountY;s+=1){let t=this.sampleAndClampNoise(e,s,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*s/this.chunkCountY+l)*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=he(this.settings.top_slide.target,t,(this.chunkCountY-s-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=he(this.settings.bottom_slide.target,t,(s-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[s]=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,i){let l=0,s=0,c=0,d=1;for(let u=0;u<16;u+=1){const m=V.wrap(e*o*d),h=V.wrap(t*r*d),p=V.wrap(n*o*d),g=r*d,f=this.minLimitPerlinNoise.getOctaveNoise(u);f&&(l+=f.sample(m,h,p,g,t*g)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(s+=v.sample(m,h,p,g,t*g)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*a*d),V.wrap(t*i*d),V.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return he(l/512,s/512,(c/10+1)/2)}}const rt={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[50,50,50],"minecraft:netherrack":[100,40,40],"minecraft:end_stone":[200,200,140]};let at,it,lt=[];function st(e,t,n){var o;if($e(n.version,"1.18")){const{settings:r,generator:a}=function(e,t){const n=x.fromJson(p.DataModel.unwrapLists(e));n.noise.bottomSlide.target*=128,n.noise.topSlide.target*=128;const o={factor:t.biomeFactor,offset:t.biomeOffset,peaks:t.biomePeaks,nearWater:!1},r=[e,o,`${t.seed}`];if(!ve(r,at)){at=fe(r),lt=[];const e=new z("unknown");it=new I(t.seed,e,n,o)}return{settings:n,generator:it}}(e,n),i=new dt(-n.offset,n.width,r.noise.minY,r.noise.height);i.fill(a);const l=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class dt{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=lt.find((e=>e.pos[0]===a));return i?(this.filled[r]=!0,i):new j(n,o,E.create(a,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,lt.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const ut=({model:e,data:t,shown:n,lang:o,version:r})=>{var a;const[i,l]=m(2),[s,h]=m(void 0),g=u([0,0]),f=u(1),v=u(void 0),_=BigInt(e.get(new p.Path(["generator","seed"]))),w=function(e){if("string"==typeof e)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]}}}return x.fromJson(e).octaves}(e.get(new p.Path(["generator","settings"]))),y=n?function(e,t){return JSON.stringify([e,t])}(t,w):"",b=null==(a=t.type)?void 0:a.replace(/^minecraft:/,""),{canvas:k,redraw:C}=F({size:()=>[200/f.current,200/f.current],async draw(e){const n={octaves:w,biomeColors:{},offset:g.current,scale:i,seed:_,res:f.current,version:r};await async function(e,t,n){const{biomeSource:o,climateSampler:r}=await He(e,n),a=t.data,i=-n.offset[0]-100+n.res/2,l=-n.offset[1]-100+n.res/2,s=4*t.width/n.res,c=4/n.res;for(let d=0;d<200;d+=n.res)for(let e=0;e<200;e+=n.res){const t=e*s+d*c,u=(d+i)*n.scale,m=(e+l)*n.scale,h=Re(o.getBiome(u,64,m,r),n.biomeColors);a[t]=h[0],a[t+1]=h[1],a[t+2]=h[2],a[t+3]=255}}(t,e,n),4===f.current&&(clearTimeout(v.current),v.current=setTimeout((()=>{f.current=1,C()}),150))},async onDrag(e,t){g.current[0]=g.current[0]+200*e,g.current[1]=g.current[1]+200*t,clearTimeout(v.current),f.current="multi_noise"===b?4:1,C()},async onHover(e,n){const o={octaves:w,biomeColors:{},offset:g.current,scale:i,seed:_,res:1,version:r},a=await async function(e,t,n,o){const{biomeSource:r,climateSampler:a}=await He(e,o),[i,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 r.getBiome(i,64,l,a)}(t,Math.floor(200*e),Math.floor(200*n),o);h(a)},onLeave(){h(void 0)}},[y,i,_]);c((()=>{n&&(f.current="multi_noise"===b?4:1,C())}),[y,i,_,n]);const M=e=>{g.current[0]=g.current[0]*i/e,g.current[1]=g.current[1]*i/e,l(e)};return d(O,null,d("div",{class:"controls"},s&&d(H,{label:s,class:"no-pointer"}),("multi_noise"===b||"checkerboard"===b)&&d(O,null,d(H,{icon:"dash",tooltip:te(o,"zoom_out"),onClick:()=>M(1.5*i)}),d(H,{icon:"plus",tooltip:te(o,"zoom_in"),onClick:()=>M(i/1.5)})),"multi_noise"===b&&d(H,{icon:"sync",tooltip:te(o,"generate_new_seed"),onClick:()=>le(e)})),d("canvas",{ref:k,width:"200",height:"200"}))};const mt=({data:e,version:t,shown:n,lang:o})=>{const[r,a]=m(4),[i,l]=m(ie()),{canvas:s,redraw:u}=F({size:()=>[16*r,16*r],async draw(n){Ue(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,i,n]),d(O,null,d("div",{class:"controls"},d(H,{icon:"dash",tooltip:te(o,"zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(H,{icon:"plus",tooltip:te(o,"zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(H,{icon:"sync",tooltip:te(o,"generate_new_seed"),onClick:()=>l(ie())})),d("canvas",{ref:s,width:"64",height:"64"}))},ht=({lang:e,data:t,shown:n,version:o})=>{var r,a;const i=te.bind(null,e),[l,s]=m(ie()),[h,p]=m(.2),[g,f]=m(.1),[v,_]=m(0),[w,y]=m(void 0),b=u(0),x=JSON.stringify([t,h,g,v]),k=$e(o,"1.18");c((()=>{p(k?600:.2),f(k?.05:.1)}),[k]);const C=null!=(a=null==(r=null==t?void 0:t.noise)?void 0:r.height)?a:256,{canvas:M,redraw:A}=F({size:()=>[C,C],async draw(e){const n={biomeOffset:g,biomeFactor:h,biomePeaks:v,offset:b.current,width:e.width,seed:l,version:o};st(t,e,n)},async onDrag(e){b.current+=e*C,A()},async onHover(e,n){var o,r;const a=C-Math.max(1,Math.ceil(n*C))+(null!=(r=null==(o=null==t?void 0:t.noise)?void 0:o.min_y)?r:0);y(`${a}`)},onLeave(){y(void 0)}},[x,l]);return c((()=>{n&&A()}),[x,l,n]),d(O,null,d("div",{class:"controls"},w&&d(H,{label:`Y = ${w}`,class:"no-pointer"}),d(G,{icon:"gear",tooltip:te(e,"terrain_settings")},k?d(O,null,d(R,{label:i("preview.factor"),value:`${h}`,onChange:e=>p(Number(e))}),d(R,{label:i("preview.offset"),value:`${g}`,onChange:e=>f(Number(e))}),d(R,{label:i("preview.peaks"),value:`${v}`,onChange:e=>_(Number(e))})):d(O,null,d(R,{label:i("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(R,{label:i("preview.depth"),value:`${g}`,onChange:e=>f(Number(e))}))),d(H,{icon:"sync",tooltip:te(e,"generate_new_seed"),onClick:()=>s(ie())})),d("canvas",{ref:M,width:C,height:C}))},pt=["dimension","worldgen/noise_settings","worldgen/configured_feature"];function gt({lang:e,model:t,version:n,id:o,shown:r}){var a;const[,i]=m(0);if(W(t,(()=>{i((e=>e+1))})),"dimension"===o&&(null==(a=null==t?void 0:t.get(new p.Path(["generator","type"])))?void 0:a.endsWith("noise"))){const o=t.get(new p.Path(["generator","biome_source"]));if(o)return d(ut,l({},{lang:e,model:t,version:n,shown:r,data:o}))}if("worldgen/noise_settings"===o&&t){const o=t.get(new p.Path([]));if(o)return d(ht,l({},{lang:e,model:t,version:n,shown:r,data:o}))}if("worldgen/configured_feature"===o&&t){const o=t.get(new p.Path([]));if(o)return d(mt,l({},{lang:e,model:t,version:n,shown:r,data:o}))}return d(O,null)}const ft={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){return Array.isArray(n)?n.map(((n,r)=>e.hook(this,t.push(r),n.node,o))):n},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const l="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[p.relativePath(n,t.validation.params.id).get()]:null,s={};return Object.keys(o).forEach((t=>{var a;l&&!Object.keys(null!=(a=l.properties)?a:{}).includes(t)||(s[t]=e.hook(this,n.push(t),o[t],r))})),s},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);return Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{r[e]=a[e].hook(this,t.push(e),n[e],o)})),r}};var vt,_t;(_t=vt||(vt={})).ID_LANGUAGE="language",_t.ID_THEME="theme",_t.ID_VERSION="schema_version",_t.ID_INDENT="indentation",_t.getLanguage=function(){var e;return null!=(e=localStorage.getItem(_t.ID_LANGUAGE))?e:"en"},_t.getTheme=function(){var e;return null!=(e=localStorage.getItem(_t.ID_THEME))?e:"dark"},_t.getVersion=function(){const e=localStorage.getItem(_t.ID_VERSION);return e&&ze.includes(e)?e:"1.17"},_t.getIndent=function(){var e;return null!=(e=localStorage.getItem(_t.ID_INDENT))?e:"2_spaces"},_t.setLanguage=function(e){e&&localStorage.setItem(_t.ID_LANGUAGE,e)},_t.setTheme=function(e){e&&localStorage.setItem(_t.ID_THEME,e)},_t.setVersion=function(e){e&&localStorage.setItem(_t.ID_VERSION,e)},_t.setIndent=function(e){e&&localStorage.setItem(_t.ID_INDENT,e)};const wt={"2_spaces":2,"4_spaces":4,tabs:"\t"};function yt({lang:e,name:t,model:n,blockStates:o,doCopy:r,doDownload:a,doImport:i,copySuccess:l,onError:s}){const h=te.bind(null,e),[g,f]=m(vt.getIndent()),v=u(null),_=u(null),w=u(),y=L(((e,t)=>{const n=e.schema.hook(ft,new p.ModelPath(e),e.data,{blockStates:t});return JSON.stringify(n,null,wt[g])+"\n"}),[g]);c((()=>{w.current=()=>{if(n&&o)try{const e=y(n,o);e.length>=1e4?v.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":v.current.value=e}catch(e){s(`Error getting JSON output: ${ge(e)}`),console.error(e),v.current.value=""}}})),W(n,(()=>{w.current()})),c((()=>{n&&w.current()}),[n]),c((()=>{w.current()}),[g]);c((()=>{r&&n&&o&&navigator.clipboard.writeText(y(n,o)).then((()=>{l()}))}),[r]),c((()=>{if(a&&v.current&&_.current){const e=encodeURIComponent(v.current.value);_.current.setAttribute("href",`data:text/json;charset=utf-8,${e}`),_.current.setAttribute("download",`${t}.json`),_.current.click()}}),[a]),c((()=>{i&&v.current&&(v.current.value="",v.current.select())}),[i]);return d(O,null,d("div",{class:"controls"},d(G,{icon:"gear",tooltip:h("output_settings")},Object.entries(wt).map((([e])=>d(H,{label:h(`indentation.${e}`),active:g===e,onClick:()=>{return t=e,vt.setIndent(t),void f(t);var t}}))))),d("textarea",{ref:v,class:"source",onBlur:()=>{try{const e=JSON.parse(v.current.value);null==n||n.reset(p.DataModel.wrapLists(e),!1)}catch(e){s(`Error importing: ${ge(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:h("source_placeholder")}),d("a",{ref:_,style:"display: none;"}))}function bt({title:e,link:t,icon:n,children:o}){return d("a",{class:"tool-card",href:t},n&&De[n],d("div",null,d("h3",null,e),o))}class xt extends p.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 kt=["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"],Ct=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],Mt=["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"],At=["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"],zt=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],Vt=["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"],It=new p.DataModel(p.MapNode(p.StringNode(),p.StringNode()),{historyMax:0});function jt({model:e,lang:t,blockStates:n}){var o;const r=new p.ModelPath(e),[a,i,l]=e.schema.hook(Et,r,fe(e.data),t,n,{});return(null==(o=null==i?void 0:i.props)?void 0:o.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(r)}-node`,"data-category":e.schema.category(r)},d("div",{class:"node-header"},a,i),d("div",{class:"node-body"},l)):l}const Et={base:()=>[null,null,null],boolean:(e,t,n,o,r,a)=>[null,d($t,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,l){const s=n.activeCase(o,!0),c=(null==t?void 0:t.context)?new p.ModelPath(o.getModel(),new p.Path(o.getArray(),[t.context])):o,[u,m,h]=s.node.hook(this,c,r,a,i,l);if(1===e.length)return[u,m,h];const g=(null==t?void 0:t.choiceContext)?new p.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new p.Path([],[t.context]):o,f=d("select",{value:s.type,onChange:n=>(n=>{var a,i,l;const c=null!=(a=e.find((e=>e.type===n)))?a:s,d=c.change?c.change(p.DataModel.unwrapLists(r)):"feature"===t.choiceContext?null==(l=null==(i=c.node.default())?void 0:i.config)?void 0:l.feature:c.node.default();o.model.set(o,p.DataModel.wrapLists(d))})(n.target.value)},e.map((e=>d("option",{value:e.type},Tt(a,g.contextPush(e.type))))));return[u,d(O,null,f,m),h]},list({children:e,config:t},n,o,r,a,i){const{expand:c,collapse:u,isToggled:h}=Lt(),[g,f]=m(50),v=n.getContext().join(".");if(Vt.includes(v)){return[d(O,null,[...Array(t.maxLength)].map(((e,t)=>d(Ht,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(O,null,[...Array(t.maxLength)].map(((t,l)=>{var s;return e.hook(this,n.modelPush(l),null==(s=null==o?void 0:o[l])?void 0:s.node,r,a,i)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":te(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ae()},...o])}},Y.plus_circle),d(O,null,o&&Array.isArray(o)&&o.map((({node:t,id:m},p)=>{if(p===g)return d("div",{class:"node node-header"},d("label",null,te(r,"entries_hidden",""+(o.length-g))),d("button",{onClick:()=>f(Math.min(g+50,o.length))},te(r,"entries_hidden.more","50")),d("button",{onClick:()=>f(o.length)},te(r,"entries_hidden.all")));if(p>g)return null;const v=n.push(p).contextPush("entry"),_="object"===e.type(v),w=h(m);if(_&&(!1===w||void 0===w&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Ht,{lang:r,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(r,"expand")}\n${te(r,"expand_all","Ctrl")}`,onClick:c(m)},Y.chevron_right),d("label",null,Tt(r,v,`${p}`)),d(Ot,{key:m,path:v,value:t,schema:e}));return d(Dt,s(l({key:m,path:v,schema:e,value:t},{lang:r,states:a,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(p,0,{id:ae(),node:fe(t)}),n.model.set(n,e)}}]}),{ctx:s(l({},i),{index:(0===p?1:0)+(p===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(r,"collapse")}\n${te(r,"collapse_all","Ctrl")}`,onClick:u(m)},Y.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":te(r,"remove"),onClick:()=>v.set(void 0)},Y.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":te(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[p-1],e[p]]=[e[p],e[p-1]],n.model.set(n,e)},disabled:0===p},Y.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":te(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[p+1],e[p]]=[e[p],e[p+1]],n.model.set(n,e)},disabled:p===o.length-1},Y.chevron_down)))})),o&&o.length>0&&o.length<=g&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":te(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ae()}])}},Y.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c){var u,m,h,g,f;const{expand:v,collapse:_,isToggled:w}=Lt(),y=new p.ModelPath(It,new p.Path([Bt(o.toString())])),b="block_state_map"===(null==(u=n.validation)?void 0:u.validator)?null==i?void 0:i[p.relativePath(o,n.validation.params.id).get()]:null,x=(null==b?void 0:b.properties)?p.StringNode(null,{enum:Object.keys(null!=(m=b.properties)?m:{})}):t;if(b&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(h=b.properties)?h:{}).map((([e,t])=>[e,p.StringNode(null,{enum:t})]));return Object.entries(null!=(g=b.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])})),p.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c)}return[null,d(O,null,x.hook(this,y,null!=(f=y.get())?f:"",a,i,c)[1],d("button",{class:"add tooltipped tip-se","aria-label":te(a,"add"),onClick:()=>{const t=y.get();o.model.set(o.push(t),p.DataModel.wrapLists(e.default()))}},Y.plus_circle)),d(O,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var u,m,h,g;const f=o.modelPush(t),y="object"===e.type(f),x=w(t);if(y&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(f)},d(Ht,{lang:a,path:f,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(a,"expand")}\n${te(a,"expand_all","Ctrl")}`,onClick:v(t)},Y.chevron_right),d("label",null,t),d(Ot,{key:t,path:f,value:n,schema:e}));const k=b?p.StringNode(null,{enum:null!=(m=null==(u=b.properties)?void 0:u[t])?m:[]}):e;(null==(h=null==b?void 0:b.properties)?void 0:h[t])&&"string"==typeof n&&!(null==(g=b.properties)?void 0:g[t].includes(n))&&o.model.errors.add(f,"error.invalid_enum_option",n);return d(Dt,s(l({key:t,schema:k,path:f,value:n},{lang:a,states:i,ctx:c}),{label:t}),y&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(a,"collapse")}\n${te(a,"collapse_all","Ctrl")}`,onClick:_(t)},Y.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":te(a,"remove"),onClick:()=>f.set(void 0)},Y.trashcan))})))]},number:(e,t,n,o,r,a)=>[null,d(Pt,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u){var m;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:/,""))&&oe(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Jt(n,o),a={type:e.type,config:p.ObjectNode({decorators:p.ListNode(Ee),feature:Oe},{context:"feature.decorated"})},i=p.ObjectNode(a,{context:"feature"}),l=new p.Path(["config","feature"]),s=new p.Path(["config","decorators"]),c=t.getModel(),d=new xt(i,(e=>{if(e.startsWith(l))return new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(s)){if(2===e.modelArr.length)return new p.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new p.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(s)){const e=[];return Jt(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(l)){const o=[];Jt(c.data,o);const r=new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(s)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(l);return c.set(new p.Path,Wt(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(l),t=[];Jt(c.data,t),t.splice(o,1);const r=Wt(e,t);return c.set(new p.Path,r,n)}{const r=new p.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 p.ModelPath(e,new p.Path(t.getArray(),["feature"])).push(n)}let h=null,g=null;if(e.optional())if(void 0===a){const t=()=>r.set(p.DataModel.wrapLists(e.default()));g=d("button",{class:"collapse closed tooltipped tip-se","aria-label":te(i,"expand"),onClick:t},Y.plus_circle)}else{const e=()=>r.set(void 0);g=d("button",{class:"collapse open tooltipped tip-se","aria-label":te(i,"remove"),onClick:e},Y.trashcan)}const f="object"==typeof a&&null!==a&&(null==(m=e.default())?void 0:m.pools)?s(l({},u),{loot:null==a?void 0:a.type}):u,v=d(O,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,s,u;const m=o(r,e),p=m.getContext().join(".");if(Ct.includes(p))return null;const[v,_,w]=t.hook(this,m,a[e],i,c,f);if(!(v||_||(null!=(u=null==(s=null==(n=null==w?void 0:w.props)?void 0:n.children)?void 0:s.length)?u:0)>0))return null;const y="object"===t.type(m)&&Mt.includes(p),b=At.includes(p);return y||b?(h=d(O,null,h,d(Ht,{lang:i,path:m}),d(Rt,{lang:i,path:m}),v),g=d(O,null,g,_),y?w:null):d(Dt,l({key:e,schema:t,path:m,value:a[e]},{lang:i,states:c,ctx:f}))})));return[h,g,v]},string:(e,t,n,o,r,a)=>[null,d(St,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null]};function Ot({path:e,value:t}){var n,o,r,a,i;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!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const l of Object.values(null!=t?t:{}))if("string"==typeof l)return d("label",null,l.replace(/^minecraft:/,""));return null}function Lt(){const[e,t]=m(new Map),[n,o]=m(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 null!=(o=null==e?void 0:e.get(t))?o:n}}}function $t({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(O,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},te(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},te(o,"true")))}function Pt({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(O,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(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:()=>le(e.model),class:"tooltipped tip-se","aria-label":te(r,"generate_new_seed")},Y.sync))}function St({path:e,getValues:t,config:n,node:o,value:r,lang:a,states:i}){var l;const s=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},c=t(),u=e.getContext().join(".");if(zt.includes(u))return d("textarea",{value:null!=r?r:"",onBlur:s});if(Nt(n)&&!n.additional||kt.includes(u)){let e=new p.Path([]);return Nt(n)&&"string"==typeof n.enum?e=e.contextPush(n.enum):Nt(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool||(e=e.contextPush(n.params.pool)),d("select",{value:null!=r?r:"",onChange:s},o.optional()&&d("option",{value:""},te(a,"unset")),c.map((t=>d("option",{value:t},Tt(a,e.contextPush(t.replace(/^minecraft:/,"")))))))}if(Nt(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ae();return d(O,null,d("input",{value:null!=r?r:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(e)},list:c.length>0?e:""}),c.length>0&&d("datalist",{id:e},c.map((e=>d("option",{value:e})))))}{const t=null==i?void 0:i[p.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:s},o.map((e=>d("option",null,e))))}}const Dt=$((function({label:e,schema:t,path:n,value:o,lang:r,states:a,ctx:i,actions:s,children:c}){const u=t.type(n),m=t.category(n),h=n.getContext().join("."),[p,g]=J(),f=l({},i);delete f.index;const[v,_,w]=t.hook(Et,n,o,r,a,f);return d("div",{class:`node ${u}-node`,"data-category":m},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),g()}},d(Ht,{lang:r,path:n}),d(Rt,{lang:r,path:n}),c,v,d("label",null,null!=e?e:Tt(r,n,`${n.last()}`),p&&d("div",{class:"node-menu"},null==s?void 0:s.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(H,{icon:e.icon,tooltip:te(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:te(r,e.label)))})),d("div",{class:"menu-item"},d(H,{icon:"clippy",tooltip:te(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(h)}),d("span",null,h)))),_),w&&d("div",{class:"node-body"},w))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&ve(e.ctx,t.ctx)&&ve(e.value,t.value)));function Nt(e){return!!(null==e?void 0:e.enum)}function Bt(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=te(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Ft("node-error","issue_opened",a)}function Rt({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=te(e,n);return o===n?null:Ft("node-help","info",o)}const Ft=(e,t,n)=>{const[o,r]=J();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Y[t],d("span",{class:"icon-popup"},n))};function Jt(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:oe(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Jt(null!=(o=e.config.feature)?o:"",t)):e}function Wt(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Wt(e,t)}}}function Gt({lang:e,model:t,blockStates:n,onError:o}){if(!t||!n||"none"===e)return d(O,null);const[r]=P((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(r)return d(O,null);const[,a]=m(0);return W(t,(()=>{a((e=>e+1))})),d("div",{class:"tree"},d(jt,l({},{model:t,lang:e,blockStates:n})))}function Yt({lang:e,changeTitle:t,version:n,onChangeVersion:o}){var r;const a=te.bind(null,e),[i,h]=m(null),[g,f]=P();if(g)return d("main",null,d(U,{error:`Something went wrong rendering the generator: ${g.message}`,onDismiss:f}));const v=ce(w());if(!v)return d("main",null,d(U,{error:`Cannot find generator "${w()}"`}));c((()=>{h(null)}),[v.id,n]);const _=B.versions.filter((e=>$e(e.id,v.minVersion))).map((e=>e.id));t(a("title.generator",a(v.id)),_),$e(n,v.minVersion)||h(`The minimum version for this generator is ${v.minVersion}`);const[y,b]=m(null),[x,k]=m(null);c((()=>{b(null),async function(e){return(await Le(e)).blockStates}(n).then((e=>k(e))),async function(e,t){var n;if(!Ie[t]||Ie[t].version!==e){const r=await Le(e);Ee=p.Reference(r.schemas,"configured_decorator"),Oe=p.ChoiceNode([{type:"string",node:p.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:p.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=B.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 p.DataModel(n,{wrapLists:!0});Ie[t]?o.reset(Ie[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ie[t]={model:o,version:e}}catch(o){throw new Error(`Cannot get generator "${t}" for version "${e}": ${ge(o)}`)}}return Ie[t].model}(n,v.id).then((e=>b(e))).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id]),W(y,(()=>{h(null)}));const C=e=>{e.ctrlKey&&"z"===e.key?(N.generatorEvent("undo","Hotkey"),null==y||y.undo()):e.ctrlKey&&"y"===e.key&&(N.generatorEvent("redo","Hotkey"),null==y||y.redo())};c((()=>(document.addEventListener("keyup",C),()=>{document.removeEventListener("keyup",C)})),[y]);const[M,A]=m(""),[z,V]=m([]);c((()=>{(async function(e){return(await Le(e)).collections})(n).then((e=>{const t=(null!=M?M:"").trim().split(" "),n=e.get(v.id).map((e=>e.slice(10))).filter((e=>t.every((t=>e.includes(t)))));n&&V(n)})).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id,M]);const[I,j]=m(window.innerWidth>820),[E,L]=m(0),[$,S]=m(0),[D,F]=m(0),[J,Z]=m(!1),X=u(void 0),[K,q]=m(!1),Q=pt.includes(v.id);K&&!Q&&q(!1);let ee=1;Q&&(ee+=1),I&&(ee+=2);return d(O,null,d("main",{class:K?"has-preview":""},d(T,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d(H,{icon:"upload",label:a("import"),onClick:()=>{N.generatorEvent("import"),j(!0),F(D+1)}}),d(G,{icon:"archive",label:a("presets"),relative:!1},d(R,{icon:"search",large:!0,value:M,onChange:A,doSelect:1,placeholder:a("search")}),d("div",{class:"result-list"},z.map((e=>d(H,{label:e,onClick:()=>{return t=e,N.generatorEvent("load-preset",t),void Me(n,null!=(o=v.path)?o:v.id,t).then((e=>{var t,n;const o=null==y?void 0:y.get(new p.Path(["generator","seed"]));void 0!==(null==(t=null==e?void 0:e.generator)?void 0:t.seed)&&void 0!==o&&(e.generator.seed=o,void 0!==(null==(n=e.generator.biome_source)?void 0:n.seed)&&(e.generator.biome_source.seed=o)),null==y||y.reset(p.DataModel.wrapLists(e),!1)}));var t,o}})))),0===z.length&&d(H,{label:a("no_presets")})),d(G,{icon:"tag",label:n},_.reverse().map((e=>d(H,{label:e,active:e===n,onClick:()=>o(e)})))),d(G,{icon:"kebab_horizontal",tooltip:a("more")},d(H,{icon:"history",label:a("reset"),onClick:()=>{N.generatorEvent("reset"),null==y||y.reset(p.DataModel.wrapLists(y.schema.default()),!0)}}),d(H,{icon:"arrow_left",label:a("undo"),onClick:e=>{e.stopPropagation(),N.generatorEvent("undo","Menu"),null==y||y.undo()}}),d(H,{icon:"arrow_right",label:a("redo"),onClick:e=>{e.stopPropagation(),N.generatorEvent("redo","Menu"),null==y||y.redo()}}))),i&&d(U,{error:i,onDismiss:()=>h(null)}),d(Gt,s(l({},{lang:e,model:y,version:n,blockStates:x}),{onError:h}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ee}px;`},d("div",{class:`popup-action action-preview${Q?" shown":""} tooltipped tip-nw`,"aria-label":a(K?"hide_preview":"show_preview"),onClick:()=>{N.generatorEvent("toggle-preview",K?"hidden":"visible"),q(!K)}},K?Y.x_circle:Y.play),d("div",{class:`popup-action action-download${I?" shown":""} tooltipped tip-nw`,"aria-label":a("download"),onClick:()=>{N.generatorEvent("download"),S($+1)}},Y.download),d("div",{class:`popup-action action-copy${I?" shown":""}${J?" active":""} tooltipped tip-nw`,"aria-label":a(J?"copied":"copy"),onClick:()=>{N.generatorEvent("copy"),L(E+1)}},J?Y.check:Y.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":a(I?"hide_output":"show_output"),onClick:()=>{N.generatorEvent("toggle-output",I?"hidden":"visible"),j(!I),L(0),S(0),F(0)}},I?Y.chevron_right:Y.code)),d("div",{class:"popup-preview"+(K?" shown":"")},d(gt,s(l({},{lang:e,model:y,version:n,id:v.id}),{shown:K,onError:h}))),d("div",{class:"popup-source"+(I?" shown":"")},d(yt,s(l({},{lang:e,model:y,blockStates:x,doCopy:E,doDownload:$,doImport:D}),{name:null!=(r=v.schema)?r:"data",copySuccess:()=>{Z(!0),void 0!==X.current&&clearTimeout(X.current),X.current=setTimeout((()=>{Z(!1)}),2e3)},onError:h}))))}function Ut({lang:e,changeTitle:t}){const n=te.bind(null,e);return t(n("title.home")),d("main",null,d("div",{class:"home"},B.generators.filter((e=>!e.category)).map((e=>d(bt,{title:n(e.id),link:se(e.url)}))),d(bt,{title:n("worldgen"),link:"/worldgen/"}),d("hr",null),d(bt,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/"},d("p",null,"Analyse your performance reports")),d(bt,{title:"Minecraft Sounds",icon:"sounds",link:"https://misode.github.io/sounds/"},d("p",null,"Browse through and mix all the vanilla sounds")),d(bt,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/"},d("p",null,"Convert your 1.16 data packs to 1.17"))))}function Zt({lang:e,changeTitle:t}){const n=te.bind(null,e);return t(n("title.generator_category",n("worldgen"))),d("main",null,d("div",{class:"home"},B.generators.filter((e=>"worldgen"===e.category)).map((e=>d(bt,{title:n(e.id),link:se(e.url)})))))}function Xt(){const[e,t]=m("none");c((()=>{(async()=>{const e=vt.getLanguage();await Promise.all([ne("en"),..."en"!==e?[ne(e)]:[]]),t(e)})()}),[]);const[n,o]=m(vt.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",n)}),[n]);const[r,a]=m(vt.getVersion()),[i,u]=m(te(e,"title.home")),h=(e,t)=>{null!=t||(t=B.versions.map((e=>e.id))),t.splice(0,t.length-3),document.title=`${e} Minecraft ${t.join(", ")}`,u(e)};return d(O,null,d(Se,l({},{lang:e,title:i,version:r,theme:n,language:e,changeLanguage:async e=>{ee[e]||await ne(e),N.setLanguage(e),vt.setLanguage(e),t(e)},changeTheme:e=>{N.setTheme(e),vt.setTheme(e),o(e)}})),d(D,{onChange:e=>{setTimeout((()=>N.pageview(se(e.url))))}},d(Ut,l({path:"/"},{lang:e,changeTitle:h})),d(Zt,l({path:"/worldgen"},{lang:e,changeTitle:h})),d(Yt,s(l({default:!0},{lang:e,version:r,changeTitle:h}),{onChangeVersion:e=>{N.setVersion(e),vt.setVersion(e),a(e)}}))))}S(d(Xt,null),document.body); +//# sourceMappingURL=index.947e119e.js.map diff --git a/assets/index.947e119e.js.map b/assets/index.947e119e.js.map new file mode 100644 index 00000000..aa3d749c --- /dev/null +++ b/assets/index.947e119e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.947e119e.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../vite/preload-helper","../../src/app/Locales.ts","../../src/app/Utils.ts","../../src/app/DataFetcher.ts","../../src/app/Schemas.ts","../../src/app/components/Header.tsx","../../src/app/components/Icons.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/NoiseSettingsPreview.tsx","../../src/app/components/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/Store.ts","../../src/app/components/SourcePanel.tsx","../../src/app/components/ToolCard.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/Tree.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Worldgen.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\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 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 { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, doSelect, value, placeholder, 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\treturn
e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t
\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\tawait draw(img)\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 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\ntype BtnMenuProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu({ icon, label, relative, tooltip, children }: BtnMenuProps) {\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\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\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\tsearch: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

{error}

\n\t\t

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

\n\t
\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 config from '../config.json'\nimport English from '../locales/en.json'\n\nexport type Localize = (key: string, ...params: string[]) => string\n\ninterface Locale {\n\t[key: string]: string\n}\n\nexport const Locales: {\n\t[key: string]: Locale,\n} = {\n\tfallback: English,\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\nexport function locale(language: string, key: string, ...params: string[]): string {\n\tconst value: string | undefined = Locales[language]?.[key]\n\t\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nexport async function loadLocale(language: string) {\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\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 getGenerator(url: string) {\n\tconst trimmedUrl = url.replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\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","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../config.json'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\nimport { checkVersion } from './Schemas'\nimport { message } from './Utils'\n\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`))\n\nconst CACHE_NAME = 'misode-v1'\n\ntype VersionRef = 'mcdata_master' | 'vanilla_datapack_summary' | 'vanilla_datapack_data'\n\ntype Version = {\n\tid: string,\n\trefs: Partial<{ [key in VersionRef]: string }>,\n\tdynamic?: boolean,\n}\n\ndeclare var __MCDATA_MASTER_HASH__: string\ndeclare var __VANILLA_DATAPACK_SUMMARY_HASH__: string\n\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata'\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack'\n\nconst refs: {\n\tid: VersionRef,\n\thash: string,\n\turl: string,\n}[] = [\n\t{\n\t\tid: 'mcdata_master',\n\t\thash: __MCDATA_MASTER_HASH__,\n\t\turl: mcdataUrl,\n\t},\n\t{\n\t\tid: 'vanilla_datapack_summary',\n\t\thash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n\t\turl: vanillaDatapackUrl,\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\tconsole.debug(`[fetchData] ${JSON.stringify(version)}`)\n\n\tif (version.dynamic) {\n\t\tawait Promise.all(refs\n\t\t\t.filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n\t\t\t.map(async r => {\n\t\t\t\tconsole.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`)\n\t\t\t\tawait deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`))\n\t\t\t\tconsole.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t\tlocalStorage.setItem(`cached_${r.id}`, r.hash)\n\t\t\t\tconsole.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t}))\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t\tfetchDynamicRegistries(version, collectionTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => !r.dynamic)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, undefined, '1.15')) {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: {[id: string]: string[]} = {}\n\t\t\t\tObject.keys(data).forEach(k => {\n\t\t\t\t\tres[k.slice(10)] = Object.keys(data[k].entries)\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id] ?? [])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t\t}\n\t} else {\n\t\tawait Promise.all(registries.map(async r => {\n\t\t\ttry {\n\t\t\t\tconst url = r.path\n\t\t\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n\t\t\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`\n\t\t\t\ttarget.register(r.id, await getData(url, v => v.values))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(`Error occurred while fetching registry ${r.id}:`, message(e))\n\t\t\t}\n\t\t}))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\tif (checkVersion(version.id, undefined, '1.16')) {\n\t\tconst url = (checkVersion(version.id, undefined, '1.15'))\n\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`\n\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: BlockStateRegistry = {}\n\t\t\t\tObject.keys(data).forEach(b => {\n\t\t\t\t\tres[b] = {\n\t\t\t\t\t\tproperties: data[b].properties,\n\t\t\t\t\t\tdefault: data[b].states.find((s: any) => s.default).properties,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t} else {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t}\n}\n\nasync function fetchDynamicRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchDynamicRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.dynamic)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, '1.16')) {\n\t\tconst url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching dynamic registries:', message(e))\n\t\t}\n\t}\n}\n\nexport async function fetchPreset(version: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${registry} ${id}`)\n\tconst versionData = config.versions.find(v => v.id === version)!\n\ttry {\n\t\tconst url = `${vanillaDatapackUrl}/${versionData.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tconsole.warn(`Error occurred while fetching ${registry} preset ${id}:`, 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 config from '../config.json'\nimport { fetchData } from './DataFetcher'\nimport { message } from './Utils'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18'] 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}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\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\tthrow new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\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\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","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { locale } from '../Locales'\nimport type { VersionId } from '../Schemas'\nimport { checkVersion } from '../Schemas'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\ntype HeaderProps = {\n\tlang: string,\n\ttitle: string,\n\tversion: VersionId,\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n\tlanguage: string,\n\tchangeLanguage: (language: string) => unknown,\n}\nexport function Header({ lang, title, version, theme, changeTheme, language, changeLanguage }: HeaderProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn
\n\t\t
\n\t\t\t{Icons.home}\n\t\t\t

{title}

\n\t\t\t{gen && \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 route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t}\n\t\t
\n\t\t\n\t
\n}\n","export const Icons = {\n\thome: ,\n\treport: ,\n\tsounds: ,\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BiomeSource, Climate, NoiseOctaves } from 'deepslate'\nimport { FixedBiome, MultiNoise, NoiseGeneratorSettings, NoiseSampler, NormalNoise, Random } from 'deepslate'\nimport { fetchPreset } from '../DataFetcher'\nimport type { VersionId } from '../Schemas'\nimport { clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\ntype BiomeColors = Record\ntype BiomeSourceOptions = {\n\toctaves: NoiseOctaves,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nlet cacheState: any\nlet biomeSourceCache: BiomeSource\nlet climateSamplerCache: Climate.Sampler\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource, climateSampler } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -options.offset[0] - 100 + options.res / 2\n\tconst oz = -options.offset[1] - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\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 worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tconst b = biomeSource.getBiome(worldX, 64, worldZ, climateSampler)\n\t\t\tconst color = getBiomeColor(b, options.biomeColors)\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 {\n\tconst { biomeSource, climateSampler } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn biomeSource.getBiome(xx, 64, zz, climateSampler)\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: BiomeSource, climateSampler: Climate.Sampler }> {\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\n\t\tconst settings = NoiseGeneratorSettings.fromJson({ octaves: options.octaves })\n\t\tconst noiseSampler = new NoiseSampler(4, 4, 32, biomeSourceCache, settings.noise, options.octaves, options.seed)\n\t\tclimateSamplerCache = noiseSampler.getClimate.bind(noiseSampler)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t\tclimateSampler: climateSamplerCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(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 (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 = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = 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 (options.version === '1.18') {\n\t\t\t\treturn MultiNoise.fromJson(state)\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 Random(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('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\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 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) {\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 = {\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:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_mountains': [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: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:mountains': [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: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:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_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: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_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_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 { PerlinNoise, Random } from 'deepslate'\nimport type { VersionId } from '../Schemas'\nimport { clamp, 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\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 Random(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\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\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\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 Math.max(value.value.min_inclusive, Math.min(value.value.max_inclusive, sampleInt(value.value.source, ctx)))\n\t\t}\n\t\treturn 1\n\t}\n}\n\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","import { PerlinNoise, Random } 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 Random(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 { BlockPos, BlockState } from 'deepslate'\nimport { Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport type { VersionId } from '../Schemas'\nimport { checkVersion } from '../Schemas'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiomeFactor: number,\n\tbiomeOffset: number,\n\tbiomePeaks: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record = {\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': [50, 50, 50],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\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.fill(generator)\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, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [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.biomeOffset, options.biomeFactor, options.offset, 200)\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\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\t// Temporary fix for slides\n\tsettings.noise.bottomSlide.target *= 128\n\tsettings.noise.topSlide.target *= 128\n\tconst shape = { factor: options.biomeFactor, offset: options.biomeOffset, peaks: options.biomePeaks, nearWater: false }\n\n\tconst newState = [state, shape, `${options.seed}`]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings, shape)\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 filled: 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.filled = []\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.filled[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 fill(generator: NoiseChunkGenerator) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.filled[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tthis.filled[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 { Path } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { NoiseGeneratorSettings } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nexport const BiomeSourcePreview = ({ model, data, shown, lang, version }: PreviewProps) => {\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\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, biomeColors: {}, 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, biomeColors: {}, 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])\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, 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
\n\t\t\t{focused && }\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t changeScale(scale * 1.5)} />\n\t\t\t\t changeScale(scale / 1.5)} />\n\t\t\t}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t newSeed(model)} />}\n\t\t
\n\t\t\n\t\n}\n\nfunction calculateState(data: any, octaves: NoiseOctaves) {\n\treturn JSON.stringify([data, octaves])\n}\n\nfunction getOctaves(obj: any): NoiseOctaves {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t\t}\n\t\t\tcase 'end':\n\t\t\tcase 'floating_islands':\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t}\n\t\t}\n\t}\n\treturn NoiseGeneratorSettings.fromJson(obj).octaves\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown, lang }: PreviewProps) => {\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
\n\t\t\t setScale(Math.min(16, scale + 1))} />\n\t\t\t setScale(Math.max(1, scale - 1))} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\n\t\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../Schemas'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ lang, data, shown, version }: PreviewProps) => {\n\tconst loc = locale.bind(null, lang)\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biomeFactor, setBiomeFactor] = useState(0.2)\n\tconst [biomeOffset, setBiomeOffset] = useState(0.1)\n\tconst [biomePeaks, setBiomePeaks] = useState(0)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst offset = useRef(0)\n\tconst state = JSON.stringify([data, biomeFactor, biomeOffset, biomePeaks])\n\n\tconst hasPeaks = checkVersion(version, '1.18')\n\tuseEffect(() => {\n\t\tsetBiomeFactor(hasPeaks ? 600 : 0.2)\n\t\tsetBiomeOffset(hasPeaks ? 0.05 : 0.1)\n\t}, [hasPeaks])\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 = { biomeOffset, biomeFactor, biomePeaks, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(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(_, y) {\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`${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 (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, seed, shown])\n\n\treturn <>\n\t\t
\n\t\t\t{focused && }\n\t\t\t\n\t\t\t\t{hasPeaks ? <>\n\t\t\t\t\t setBiomeFactor(Number(v))} />\n\t\t\t\t\t setBiomeOffset(Number(v))} />\n\t\t\t\t\t setBiomePeaks(Number(v))} />\n\t\t\t\t : <>\n\t\t\t\t\t setBiomeFactor(Number(v))} />\n\t\t\t\t\t setBiomeOffset(Number(v))} />\n\t\t\t\t}\n\t\t\t\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 '../Schemas'\nimport { BiomeSourcePreview, DecoratorPreview, NoiseSettingsPreview } from './previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise_settings', 'worldgen/configured_feature']\n\ntype PreviewPanelProps = {\n\tlang: string,\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ lang, 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 (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 \n\t}\n\n\tif (id === 'worldgen/noise_settings' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/configured_feature' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\treturn <>\n}\n","import type { Hook } from '@mcschema/core'\nimport { relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../Schemas'\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\treturn value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\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\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\tres[f] = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t})\n\t\treturn res\n\t},\n}\n","import type { VersionId } from './Schemas'\nimport { VersionIds } from './Schemas'\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\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.17'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\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","import { DataModel, ModelPath } from '@mcschema/core'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '.'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport { transformOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry } from '../Schemas'\nimport { Store } from '../Store'\nimport { message } from '../Utils'\n\nconst OUTPUT_CHARS_LIMIT = 10000\n\nconst INDENT: Record = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n}\n\ntype SourcePanelProps = {\n\tlang: string,\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) => unknown,\n}\nexport function SourcePanel({ lang, name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst source = useRef(null)\n\tconst download = useRef(null)\n\tconst retransform = useRef()\n\n\tconst getOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n\t\treturn JSON.stringify(data, null, INDENT[indent]) + '\\n'\n\t}, [indent])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getOutput(model, blockStates)\n\t\t\t\tif (output.length >= OUTPUT_CHARS_LIMIT) {\n\t\t\t\t\tsource.current.value = output.slice(0, OUTPUT_CHARS_LIMIT) + `\\n\\nOutput is too large to display (+${OUTPUT_CHARS_LIMIT} chars)\\nExport to view complete output\\n\\n`\n\t\t\t\t} else {\n\t\t\t\t\tsource.current.value = output\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\tsource.current.value = ''\n\t\t\t}\n\t\t}\n\t})\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\tretransform.current()\n\t}, [indent])\n\n\tconst onImport = () => {\n\t\ttry {\n\t\t\tconst data = JSON.parse(source.current.value)\n\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t} catch (e) {\n\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getOutput(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 && source.current && download.current) {\n\t\t\tconst content = encodeURIComponent(source.current.value)\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.json`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && source.current) {\n\t\t\tsource.current.value = ''\n\t\t\tsource.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\treturn <> \n\t\t
\n\t\t\t\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tlink: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, link, icon, children }: ToolCardProps) {\n\treturn \n\t\t{icon && Icons[icon]}\n\t\t
\n\t\t\t

{title}

\n\t\t\t{children}\n\t\t
\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,\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 { Btn } from '../components'\nimport { Octicon } from '../components/Octicon'\nimport { useFocus } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry } from '../Schemas'\nimport { CachedDecorator, CachedFeature } from '../Schemas'\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']\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']\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']\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']\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, BlockStateRegistry, Record], JSXTriple>\n\ntype NodeProps = T & {\n\tnode: INode,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n}\n\nexport function FullNode({ model, lang, blockStates }: { model: DataModel, lang: string, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ?
\n\t\t
{prefix}{suffix}
\n\t\t
{body}
\n\t
: body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, 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, 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 newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' ?\tc.node.default()?.config?.feature : c.node.default()\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = \n\t\treturn [prefix, <>{inject}{suffix}, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, 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)}\n\t\t\t\t
\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, 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 = \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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\t{value.length > 1 &&
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) &&
\n\t\t\t\t\n\t\t\t
}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, 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, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, states, ctx)[1]}\n\t\t\t\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t})}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, states, ctx) {\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 = \n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = \n\t\t\t}\n\t\t}\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, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\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}{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 \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, states, ctx) {\n\t\treturn [null, , null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn \n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn \n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn \n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map())\n\tconst [toggleAll, setToggleAll] = useState(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\treturn toggleState?.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t\n\t\t\n\t\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps) {\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 {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && }\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && }\n\t\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, states }: NodeProps) {\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\tif (nbtFields.includes(context)) {\n\t\treturn \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 (!isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string') {\n\t\t\tcontext = context.contextPush(config.params.pool)\n\t\t}\n\t\treturn \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 \n\t} else {\n\t\tconst datalistId = hexId()\n\t\treturn <>\n\t\t\t {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && \n\t\t\t\t{values.map(v => }\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,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, 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 = {...ctx}\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, states, newCtx)\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t\n\t\t\t{suffix}\n\t\t
\n\t\t{body &&
{body}
}\n\t
\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 = locale(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 = locale(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 = locale(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
\n\t\t{Octicon[icon]}\n\t\t{popup}\n\t
\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 { useModel } from '../hooks'\nimport { FullNode } from '../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../Schemas'\n\ntype TreePanelProps = {\n\tlang: string,\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ lang, model, blockStates, onError }: TreePanelProps) {\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
\n\t\t\n\t
\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl } from 'preact-router'\nimport { useEffect, useErrorBoundary, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnInput, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SourcePanel, Tree } from '../components'\nimport { fetchPreset } from '../DataFetcher'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry, VersionId } from '../Schemas'\nimport { checkVersion, getBlockStates, getCollections, getModel } from '../Schemas'\nimport { getGenerator } from '../Utils'\n\ntype GeneratorProps = {\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tonChangeVersion: (version: VersionId) => unknown,\n\tdefault?: true,\n}\nexport function Generator({ lang, changeTitle, version, onChangeVersion }: GeneratorProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn
\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn
\n\t}\n\n\tuseEffect(() => {\n\t\tsetError(null)\n\t}, [gen.id, version])\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tchangeTitle(loc('title.generator', loc(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\n\tconst [model, setModel] = useState(null)\n\tconst [blockStates, setBlockStates] = useState(null)\n\tuseEffect(() => {\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(m => setModel(m))\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tuseModel(model, () => {\n\t\tsetError(null)\n\t})\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\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t}\n\t}, [model])\n\n\tconst [presetFilter, setPresetFilter] = useState('')\n\tconst [presetResults, setPresetResults] = useState([])\n\tuseEffect(() => {\n\t\tgetCollections(version)\n\t\t\t.then(collections => {\n\t\t\t\tconst terms = (presetFilter ?? '').trim().split(' ')\n\t\t\t\tconst presets = collections.get(gen.id)\n\t\t\t\t\t.map(p => p.slice(10))\n\t\t\t\t\t.filter(p => terms.every(t => p.includes(t)))\n\t\t\t\tif (presets) {\n\t\t\t\t\tsetPresetResults(presets)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id, presetFilter])\n\n\tconst loadPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tfetchPreset(version, gen.path ?? gen.id, id).then(preset => {\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\tmodel?.reset(DataModel.wrapLists(preset), false)\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, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef(undefined)\n\tconst copySuccess = () => {\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\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id)\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}\n\n\treturn <>\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{presetResults.map(preset => loadPreset(preset)} />)}\n\t\t\t\t\t
\n\t\t\t\t\t{presetResults.length === 0 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t onChangeVersion(v)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t{error && setError(null)} />}\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{Octicon.download}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype HomeProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Home({ lang, changeTitle }: HomeProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.home'))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t

Analyse your performance reports

\n\t\t\t
\n\t\t\t\n\t\t\t\t

Browse through and mix all the vanilla sounds

\n\t\t\t
\n\t\t\t\n\t\t\t\t

Convert your 1.16 data packs to 1.17

\n\t\t\t
\n\t\t
\n\t
\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype WorldgenProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Worldgen({ lang, changeTitle }: WorldgenProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.generator_category', loc('worldgen')))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => g.category === 'worldgen').map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t
\n}\n","import { render } from 'preact'\nimport type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport config from '../config.json'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { loadLocale, locale, Locales } from './Locales'\nimport { Generator, Home, Worldgen } from './pages'\nimport type { VersionId } from './Schemas'\nimport { Store } from './Store'\nimport { cleanUrl } from './Utils'\n\nconst VERSIONS_IN_TITLE = 3\n\nfunction Main() {\n\tconst [lang, setLanguage] = useState('none')\n\tconst changeLanguage = async (language: string) => {\n\t\tif (!Locales[language]) {\n\t\t\tawait loadLocale(language)\n\t\t}\n\t\tAnalytics.setLanguage(language)\n\t\tStore.setLanguage(language)\n\t\tsetLanguage(language)\n\t}\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 [theme, setTheme] = useState(Store.getTheme())\n\tconst changeTheme = (theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst [version, setVersion] = useState(Store.getVersion())\n\tconst changeVersion = (version: VersionId) => {\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}\n\n\tconst [title, setTitle] = useState(locale(lang, 'title.home'))\n\tconst changeTitle = (title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tversions.splice(0, versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${versions.join(', ')}`\n\t\tsetTitle(title)\n\t}\n\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
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n}\n\nrender(
, 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","large","doSelect","value","placeholder","onChange","onInput","e","value2","target","ref","useRef","current","select","stopPropagation","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","s2","width","height","img","getImageData","ownCount","putImageData","setActive","useState","hider","model","invalidated","listener","[object Object]","addListener","removeListener","relative","children","useFocus","Btn","__spreadProps","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","generatorEvent","archive","xmlns","viewBox","fill-rule","d","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","download","duplicate","eye","eye_closed","gear","globe","history","info","issue_opened","kebab_horizontal","link","mark_github","moon","play","plus","plus_circle","search","sun","sync","tag","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","Promise","all","map","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Locales","fallback","English","key","params","replace","parseInt","match","slice","resolveLocaleParams","en","langConfig","config","languages","find","lang","data","__variableDynamicImportRuntime0__","schema","schemas","__variableDynamicImportRuntime1__","__spreadValues","default","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","seed","dimensions","get","Path","set","keys","forEach","url","replaceAll","trimmedUrl","generators","g2","str","h","abs","i","imul","charCodeAt","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","localStorage","removeItem","v","mcdataUrl","vanillaDatapackUrl","refs","hash","versionId","collectionTarget","blockStateTarget","versions","debug","JSON","stringify","dynamic","filter","getItem","r","matches","cache","caches","open","promises","request","push","delete","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","data2","k","entries","register","path","values","properties","states","assign","vanilla_datapack_summary","registry","versionData","vanilla_datapack_data","fetch","json","fn","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","CachedDecorator","CachedFeature","collections","getCollections","blockStates","fetchData","getSchemas","minVersionId","maxVersionId","findIndex","Themes","system","dark","light","title","changeTheme","changeLanguage","loc","locale","bind","gen","getGenerator","getCurrentUrl","Link","Icons","home","BtnMenu","route","cleanUrl","name","th","fill","rx","y","report","sounds","cx","cy","clip-rule","cacheState","biomeSourceCache","climateSamplerCache","state","options","newState","octaves","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","NetherPreset18","NetherPreset","fetchPreset","generator","biome_source","OverworldPreset18","DataModel","unwrapLists","MultiNoise","fromJson","noise","config2","firstOctave","clamp","NormalNoise","Random","n","n2","sample","minDist","Infinity","minBiome","parameters","p","dist","square","altitude","temperature","humidity","weirdness","offset","getBiomeSource","settings","NoiseGeneratorSettings","noiseSampler","NoiseSampler","getClimate","biomeSource","climateSampler","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:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","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:mountains","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: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:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:snowcapped_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","amplitudes","temperature_noise","humidity_noise","weirdness_noise","continentalness","erosion","depth","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","sampleInt","this","pos","feature","j2","base","spread","normalize","min_inclusive","max_inclusive","source","indexOf","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","f","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","factor","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","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","ox","noise1","fillNoiseColumn","noise2","yy","oy","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:netherrack","minecraft:end_stone","generatorCache","chunkCache","bottomSlide","topSlide","shape","biomeFactor","biomeOffset","peaks","biomePeaks","nearWater","NoiseChunkGenerator","getCached","LevelSlice","minY","generator2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","filled","chunks","cached","Chunk","ChunkPos","create","Z","chunk","chunkIndex","BiomeSourcePreview","shown","setScale","focused","setFocused","refineTimeout","getOctaves","calculateState","useCanvas","oz","col","worldX","worldZ","getBiomeColor","getBiome","biomeMap","setTimeout","xx","zz","toWorld","changeScale","newScale","newSeed","DecoratorPreview","setSeed","randomSeed","NoiseSettingsPreview","setBiomeFactor","setBiomeOffset","setBiomePeaks","hasPeaks","worldY","min_y","BtnInput","HasPreview","setCount","transformOutput","switchNode","props","hook","blockState","validation","validator","relativePath","includes","getActiveFields","activeFields","enabled","Store","Store2","getLanguage","getTheme","getVersion","getIndent","setIndent","indent","INDENT","2_spaces","4_spaces","tabs","doCopy","doDownload","doImport","copySuccess","onError","retransform","getOutput","useCallback","model2","blockStates2","ModelPath","output","clipboard","writeText","content","encodeURIComponent","setAttribute","click","changeIndent","onBlur","parse","wrapLists","spellcheck","autocorrect","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","some","data-category","boolean","BooleanSuffix","choices","choice","activeCase","contextPath","context","getModel","getArray","choiceContextPath","choiceContext","inject","c2","newValue","change","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","onSelect","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isObject","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","newPath","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","newCtx","pools","loot","child","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","Map","toggleAll","setToggleAll","evt","ctrlKey","integer","parsed","parseFloat","onKeyDown","padStart","getValues","isEnum","additional","context2","pool","datalistId","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","result","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","changeTitle","onChangeVersion","setError","errorBoundary","errorRetry","ErrorPanel","allowedVersions","setModel","setBlockStates","Reference","ChoiceNode","schemaName","validate","m","catch","onKeyUp","undo","redo","presetFilter","setPresetFilter","presetResults","setPresetResults","terms","trim","split","presets","every","t","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","copyActive","setCopyActive","copyTimeout","previewShown","setPreviewShown","hasPreview","actionsShown","Ad","loadPreset","Tree","PreviewPanel","SourcePanel","ToolCard","loadLocale","documentElement","setTitle","title2","Header","theme2","Router","Home","Worldgen","Generator","version2","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.d77bd5ec.js b/assets/index.d77bd5ec.js deleted file mode 100644 index 4e4029af..00000000 --- a/assets/index.d77bd5ec.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,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,l=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},s=(e,o)=>t(e,n(o));import{y as c,a as d,s as u,l as m,r as h,b as p,j as f,c as g,d as v,e as _,g as w,L as y,f as b,C as x,M as k,_ as C,X as M,W as A,R as z,h as V,N as j,i as I,I as E,k as O,A as L,m as $,q as P,n as S,o as D}from"./vendor.e4f625be.js";var N,B=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"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","refs":{"mcdata_master":"13355f7"}},{"id":"1.16","refs":{"mcdata_master":"1.16.4","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","refs":{"mcdata_master":"1.17.1","vanilla_datapack_data":"1.17.1-data","vanilla_datapack_summary":"1.17.1-summary"}},{"id":"1.18","refs":{"mcdata_master":"master","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table","maxVersion":"1.17"},{"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/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/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16"},{"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"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"block_predicate_type","minVersion":"1.18"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"float_provider_type","minVersion":"1.17"},{"id":"item"},{"id":"int_provider_type","minVersion":"1.17"},{"id":"height_provider_type","minVersion":"1.17"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"recipe_serializer"},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}');function T({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 H({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&Y[e],t&&d("span",null,t))}function R({icon:e,label:t,large:n,doSelect:o,value:r,placeholder:a,onChange:i}){const l=void 0===i?()=>{}:e=>{const t=e.target.value;null==i||i(t)},s=u(null);return c((()=>{o&&s.current&&s.current.select()}),[o]),d("div",{class:"btn btn-input "+(n?"large-input":""),onClick:e=>e.stopPropagation()},e&&Y[e],t&&d("span",null,t),d("input",{ref:s,type:"text",value:r,onChange:l,placeholder:a}))}function F({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=u(null),l=u(),s=u(),d=u([0,0]),m=u(!1);c((()=>{const e=e=>{l.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===l.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-l.current[0],r=e.offsetY-l.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],m.current||(cancelAnimationFrame(s.current),s.current=requestAnimationFrame((async()=>{m.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),m.current=!1})))),l.current=[e.offsetX,e.offsetY]},a=()=>{l.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const h=u(),p=u(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=p.current+=1;await t(r),a===p.current&&n.putImageData(r,0,0)},{canvas:i,redraw:h.current}}function J(){const[e,t]=m(!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 W(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function G({icon:e,label:t,relative:n,tooltip:o,children:r}){const[a,i]=J();return d("div",{class:"btn-menu"+(!1===n?" no-relative":"")},d(H,s(l({},{icon:e,label:t,tooltip:o}),{onClick:i})),a&&d("div",{class:"btn-group"},r))}!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.generatorEvent=function(e,t){o(n,e,t)}}(N||(N={}));const Y={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"})),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"})),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"})),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"})),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"})),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"})),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 U({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Y.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}let Z;const X={},K=function(e,t){if(!t)return e();if(void 0===Z){const e=document.createElement("link").relList;Z=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in X)return;X[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":Z,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 q=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","download":"Download","duplicate":"Duplicate","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","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide JSON output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","loot_table":"Loot Table","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":"JSON 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.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","remove":"Remove","search":"Search","show_output":"Show JSON output","show_preview":"Show preview","source_placeholder":"Paste JSON content here","switch_generator":"Switch generator","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),Q=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:q});const ee={fallback:q};function te(e,t,...n){var o,r,a,i,l;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!=(l=null!=(i=null!=(a=null==(o=ee[e])?void 0:o[t])?a:null==(r=ee.en)?void 0:r[t])?i:ee.fallback[t])?l:t,n)}async function ne(e){const t=B.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../locales/de.json":return K((()=>import("./de.a5527242.js")),void 0);case"../locales/en.json":return K((()=>Promise.resolve().then((function(){return Q}))),void 0);case"../locales/es.json":return K((()=>import("./es.be1c5183.js")),void 0);case"../locales/fr.json":return K((()=>import("./fr.cc0e1c18.js")),void 0);case"../locales/it.json":return K((()=>import("./it.fd9a8268.js")),void 0);case"../locales/ja.json":return K((()=>import("./ja.8c79487c.js")),void 0);case"../locales/pl.json":return K((()=>import("./pl.3a9fb38c.js")),void 0);case"../locales/pt.json":return K((()=>import("./pt.689bba1d.js")),void 0);case"../locales/ru.json":return K((()=>import("./ru.43cf4da1.js")),void 0);case"../locales/sk.json":return K((()=>import("./sk.586a2a32.js")),void 0);case"../locales/zh-cn.json":return K((()=>import("./zh-cn.97195370.js")),void 0);case"../locales/zh-tw.json":return K((()=>import("./zh-tw.a82e5245.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/de.json":return K((()=>import("./de.f9c3209c.js")),void 0);case"../../node_modules/@mcschema/locales/src/en.json":return K((()=>import("./en.c831bdaf.js")),void 0);case"../../node_modules/@mcschema/locales/src/es.json":return K((()=>import("./es.c83d9c73.js")),void 0);case"../../node_modules/@mcschema/locales/src/fr.json":return K((()=>import("./fr.9b3a1c69.js")),void 0);case"../../node_modules/@mcschema/locales/src/it.json":return K((()=>import("./it.7ff123cd.js")),void 0);case"../../node_modules/@mcschema/locales/src/ja.json":return K((()=>import("./ja.4ae430b9.js")),void 0);case"../../node_modules/@mcschema/locales/src/pl.json":return K((()=>import("./pl.01cb20df.js")),void 0);case"../../node_modules/@mcschema/locales/src/pt.json":return K((()=>import("./pt.31e14993.js")),void 0);case"../../node_modules/@mcschema/locales/src/ru.json":return K((()=>import("./ru.92df5b59.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-cn.json":return K((()=>import("./zh-cn.7cd3f35b.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-tw.json":return K((()=>import("./zh-tw.bae62b5e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../node_modules/@mcschema/locales/src/${e}.json`);ee[e]=l(l({},n.default),o.default)}function oe(e){return"object"==typeof e&&null!==e}const re=e=>("0"+e.toString(16)).substr(-2);function ae(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,re).join("")}function ie(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function le(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new p.Path(["dimensions"]));e.set(new p.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new p.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new p.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new p.Path(["generator","seed"]),t,!0),e.set(new p.Path(["generator","biome_source","seed"]),t)}function se(e){return`/${e}/`.replaceAll("//","/")}function ce(e){const t=e.replace(/^\//,"").replace(/\/$/,"");return B.generators.find((e=>e.url===t))}function de(e){const t=Math.abs(function(e){let t=0;for(let n=0;n>8)%256,(t>>16)%256]}function ue(e){return e*e}function me(e,t,n){return Math.max(e,Math.min(t,n))}function he(e,t,n){return n<0?e:n>1?t:pe(n,e,t)}function pe(e,t,n){return t+e*(n-t)}function fe(e){return e instanceof Error?e.message:`${e}`}const ge=h();function ve(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(e.node)));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,n])=>{t[e]=_e(n)})),t}return e}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`)));const we="https://raw.githubusercontent.com/Arcensoth/mcdata",ye="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",be=[{id:"mcdata_master",hash:"12a4bcee3dd49fd94042c5e8cdcb4bb29a42562d",url:we},{id:"vanilla_datapack_summary",hash:"7e7aec5deaac501b0ed63b1b17d34fbc2878fe84",url:ye}];async function xe(e,t,n){const o=B.versions.find((t=>t.id===e));o?(console.debug(`[fetchData] ${JSON.stringify(o)}`),o.dynamic&&await Promise.all(be.filter((e=>localStorage.getItem(`cached_${e.id}`)!==e.hash)).map((async e=>{console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem(`cached_${e.id}`)}' < '${e.hash}' ${e.url}/${o.refs[e.id]}`),await async function(e){try{const t=await caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");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-v1: ${fe(t)}`)}}((t=>t.startsWith(`${e.url}/${o.refs[e.id]}`))),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`),localStorage.setItem(`cached_${e.id}`,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`)}))),await Promise.all([ke(o,t),Ce(o,n),Me(o,t)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(B.versions)}`)}async function ke(e,t){console.debug(`[fetchRegistries] ${e.id}`);const n=B.registries.filter((e=>!e.dynamic)).filter((t=>Pe(e.id,t.minVersion,t.maxVersion)));if(Pe(e.id,void 0,"1.15")){const r=`${we}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=await ze(r,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n.slice(10)]=Object.keys(e[n].entries)})),t}));n.forEach((n=>{var o;t.register(n.id,null!=(o=e[n.id])?o:[])}))}catch(o){console.warn("Error occurred while fetching registries:",fe(o))}}else await Promise.all(n.map((async n=>{try{const o=n.path?`${we}/${e.refs.mcdata_master}/${n.path}/data.min.json`:`${we}/${e.refs.mcdata_master}/processed/reports/registries/${n.id}/data.min.json`;t.register(n.id,await ze(o,(e=>e.values)))}catch(o){console.warn(`Error occurred while fetching registry ${n.id}:`,fe(o))}})))}async function Ce(e,t){if(console.debug(`[fetchBlockStateMap] ${e.id}`),Pe(e.id,void 0,"1.16")){const o=Pe(e.id,void 0,"1.15")?`${we}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${we}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=await ze(o,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n]={properties:e[n].properties,default:e[n].states.find((e=>e.default)).properties}})),t}));Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",fe(n))}}else{const o=`${we}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{const e=await ze(o);Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",fe(n))}}}async function Me(e,t){console.debug(`[fetchDynamicRegistries] ${e.id}`);const n=B.registries.filter((e=>e.dynamic)).filter((t=>Pe(e.id,t.minVersion,t.maxVersion)));if(Pe(e.id,"1.16")){const r=`${ye}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=await ze(r);n.forEach((n=>{t.register(n.id,e[n.id])}))}catch(o){console.warn("Error occurred while fetching dynamic registries:",fe(o))}}}async function Ae(e,t,n){console.debug(`[fetchPreset] ${t} ${n}`);const o=B.versions.find((t=>t.id===e));try{const e=`${ye}/${o.refs.vanilla_datapack_data}/data/minecraft/${t}/${n}.json`,r=await fetch(e);return await r.json()}catch(r){console.warn(`Error occurred while fetching ${t} preset ${n}:`,fe(r))}}async function ze(e,t=(e=>e)){try{const n=await caches.open("misode-v1");console.debug(`[getData] Opened cache misode-v1 ${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-v1: ${fe(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const Ve=["1.15","1.16","1.17","1.18"],je={},Ie={},Ee={1.15:f,1.16:g,1.17:v,1.18:_};let Oe,Le;async function $e(e){return je[e]||(je[e]=(async()=>{try{const t=Ee[e].getCollections(),n={};await xe(e,t,n);const o=Ee[e].getSchemas(t);return je[e]={collections:t,schemas:o,blockStates:n},je[e]}catch(t){throw new Error(`Cannot get version "${e}": ${fe(t)}`)}})()),je[e]}function Pe(e,t,n){const o=B.versions.findIndex((t=>t.id===e)),r=t?B.versions.findIndex((e=>e.id===t)):0,a=n?B.versions.findIndex((e=>e.id===n)):B.versions.length-1;return r<=o&&o<=a}const Se={system:"device_desktop",dark:"moon",light:"sun"};function De({lang:e,title:t,version:n,theme:o,changeTheme:r,language:a,changeLanguage:i}){const l=te.bind(null,e),s=ce(w());return d("header",null,d("div",{class:"title"},d(y,{class:"home-link",href:"/","aria-label":l("home")},Ne.home),d("h2",null,t),s&&d(G,{icon:"chevron_down",tooltip:l("switch_generator")},B.generators.filter((e=>e.category===(null==s?void 0:s.category)&&Pe(n,e.minVersion))).map((e=>d(H,{label:l(e.id),active:e.id===s.id,onClick:()=>b(se(e.url))}))))),d("nav",null,d("ul",null,d("li",null,d(G,{icon:"globe",tooltip:l("language")},B.languages.map((({code:e,name:t})=>d(H,{label:t,active:e===a,onClick:()=>i(e)}))))),d("li",null,d(G,{icon:Se[o],tooltip:l("theme")},Object.entries(Se).map((([e,t])=>d(H,{icon:t,label:l(`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":l("github")},Y.mark_github)))))}const Ne={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"}))};let Be,Te,He;async function Re(e,t){const n=[e,t.octaves,`${t.seed}`,t.version];if(!ve(n,Be)){Be=ge(n),Te=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new z(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?Ge:We;break;case"overworld":e="1.18"===t.version?await async function(){return(await Ae("1.18","dimension","overworld")).generator.biome_source}():e}if(e=_e(e),"1.18"===t.version)return C.fromJson(e);{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=me(null!=(r=a.firstOctave)?r:-7,-100,-1),new M(new A(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 i=1/0,l="";for(const{biome:n,parameters:s}of e.biomes){const e=ue(s.altitude-a[0])+ue(s.temperature-a[1])+ue(s.humidity-a[2])+ue(s.weirdness-a[3])+ue(s.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),sampleInt(e){return qe(e,this)}};for(let i=0;i=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=l{tt(t,null==e?void 0:e.decorator,n).forEach((t=>et(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{et(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 et(t,a.feature,n);et(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;et(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)}},ot={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),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).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,Ye[me(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>tt(t,null==e?void 0:e.outer,n).flatMap((t=>tt(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Ke(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!=(i=null==e?void 0:e.baseline)?i: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)=>Ke(t,Math.max(n.seaLevel,Ye[me(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Ye[me(0,63,t[0])]);return Ke(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Ke(t,Math.max(n.seaLevel,Ye[me(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 Ke(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 Ke(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,i;return Ke(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!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Ke(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Ke(t,Ye[me(0,63,t[0])]),magma:(e,t,n)=>Ke(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=Ye[me(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]i?[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)]]:[]}};class rt{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 A(e);this.minLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new V(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new V(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 m=this.chunkCountY-1;m>=0;m-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[m*this.chunkHeight+e]=(i=n,l=o,s=r[m],c=r[m+1],d=a[m],u=a[m+1],pe(l,pe(i,s,c),pe(i,d,u)))}var i,l,s,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,i=r/this.settings.sampling.y_factor,l=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let s=0;s<=this.chunkCountY;s+=1){let t=this.sampleAndClampNoise(e,s,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*s/this.chunkCountY+l)*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=he(this.settings.top_slide.target,t,(this.chunkCountY-s-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=he(this.settings.bottom_slide.target,t,(s-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[s]=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,i){let l=0,s=0,c=0,d=1;for(let u=0;u<16;u+=1){const m=V.wrap(e*o*d),h=V.wrap(t*r*d),p=V.wrap(n*o*d),f=r*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(l+=g.sample(m,h,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(s+=v.sample(m,h,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*a*d),V.wrap(t*i*d),V.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return he(l/512,s/512,(c/10+1)/2)}}const at={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[50,50,50],"minecraft:netherrack":[100,40,40],"minecraft:end_stone":[200,200,140]};let it,lt,st=[];function ct(e,t,n){var o;if(Pe(n.version,"1.18")){const{settings:r,generator:a}=function(e,t){const n=x.fromJson(_e(e));n.noise.bottomSlide.target*=128,n.noise.topSlide.target*=128;const o={factor:t.biomeFactor,offset:t.biomeOffset,peaks:t.biomePeaks,nearWater:!1},r=[e,o,`${t.seed}`];if(!ve(r,it)){it=ge(r),st=[];const e=new z("unknown");lt=new j(t.seed,e,n,o)}return{settings:n,generator:lt}}(e,n),i=new ut(-n.offset,n.width,r.noise.minY,r.noise.height);i.fill(a);const l=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class ut{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=st.find((e=>e.pos[0]===a));return i?(this.filled[r]=!0,i):new I(n,o,E.create(a,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,st.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const mt=({model:e,data:t,shown:n,lang:o,version:r})=>{var a;const[i,l]=m(2),[s,h]=m(void 0),f=u([0,0]),g=u(1),v=u(void 0),_=BigInt(e.get(new p.Path(["generator","seed"]))),w=function(e){if("string"==typeof e)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]}}}return x.fromJson(e).octaves}(e.get(new p.Path(["generator","settings"]))),y=n?function(e,t){return JSON.stringify([e,t])}(t,w):"",b=null==(a=t.type)?void 0:a.replace(/^minecraft:/,""),{canvas:k,redraw:C}=F({size:()=>[200/g.current,200/g.current],async draw(e){const n={octaves:w,biomeColors:{},offset:f.current,scale:i,seed:_,res:g.current,version:r};await async function(e,t,n){const{biomeSource:o,climateSampler:r}=await Re(e,n),a=t.data,i=-n.offset[0]-100+n.res/2,l=-n.offset[1]-100+n.res/2,s=4*t.width/n.res,c=4/n.res;for(let d=0;d<200;d+=n.res)for(let e=0;e<200;e+=n.res){const t=e*s+d*c,u=(d+i)*n.scale,m=(e+l)*n.scale,h=Fe(o.getBiome(u,64,m,r),n.biomeColors);a[t]=h[0],a[t+1]=h[1],a[t+2]=h[2],a[t+3]=255}}(t,e,n),4===g.current&&(clearTimeout(v.current),v.current=setTimeout((()=>{g.current=1,C()}),150))},async onDrag(e,t){f.current[0]=f.current[0]+200*e,f.current[1]=f.current[1]+200*t,clearTimeout(v.current),g.current="multi_noise"===b?4:1,C()},async onHover(e,n){const o={octaves:w,biomeColors:{},offset:f.current,scale:i,seed:_,res:1,version:r},a=await async function(e,t,n,o){const{biomeSource:r,climateSampler:a}=await Re(e,o),[i,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 r.getBiome(i,64,l,a)}(t,Math.floor(200*e),Math.floor(200*n),o);h(a)},onLeave(){h(void 0)}},[y,i,_]);c((()=>{n&&(g.current="multi_noise"===b?4:1,C())}),[y,i,_,n]);const M=e=>{f.current[0]=f.current[0]*i/e,f.current[1]=f.current[1]*i/e,l(e)};return d(O,null,d("div",{class:"controls"},s&&d(H,{label:s,class:"no-pointer"}),("multi_noise"===b||"checkerboard"===b)&&d(O,null,d(H,{icon:"dash",tooltip:te(o,"zoom_out"),onClick:()=>M(1.5*i)}),d(H,{icon:"plus",tooltip:te(o,"zoom_in"),onClick:()=>M(i/1.5)})),"multi_noise"===b&&d(H,{icon:"sync",tooltip:te(o,"generate_new_seed"),onClick:()=>le(e)})),d("canvas",{ref:k,width:"200",height:"200"}))};const ht=({data:e,version:t,shown:n,lang:o})=>{const[r,a]=m(4),[i,l]=m(ie()),{canvas:s,redraw:u}=F({size:()=>[16*r,16*r],async draw(n){Ze(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,i,n]),d(O,null,d("div",{class:"controls"},d(H,{icon:"dash",tooltip:te(o,"zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(H,{icon:"plus",tooltip:te(o,"zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(H,{icon:"sync",tooltip:te(o,"generate_new_seed"),onClick:()=>l(ie())})),d("canvas",{ref:s,width:"64",height:"64"}))},pt=({lang:e,data:t,shown:n,version:o})=>{var r,a;const i=te.bind(null,e),[l,s]=m(ie()),[h,p]=m(.2),[f,g]=m(.1),[v,_]=m(0),[w,y]=m(void 0),b=u(0),x=JSON.stringify([t,h,f,v]),k=Pe(o,"1.18");c((()=>{p(k?600:.2),g(k?.05:.1)}),[k]);const C=null!=(a=null==(r=null==t?void 0:t.noise)?void 0:r.height)?a:256,{canvas:M,redraw:A}=F({size:()=>[C,C],async draw(e){const n={biomeOffset:f,biomeFactor:h,biomePeaks:v,offset:b.current,width:e.width,seed:l,version:o};ct(t,e,n)},async onDrag(e){b.current+=e*C,A()},async onHover(e,n){var o,r;const a=C-Math.max(1,Math.ceil(n*C))+(null!=(r=null==(o=null==t?void 0:t.noise)?void 0:o.min_y)?r:0);y(`${a}`)},onLeave(){y(void 0)}},[x,l]);return c((()=>{n&&A()}),[x,l,n]),d(O,null,d("div",{class:"controls"},w&&d(H,{label:`Y = ${w}`,class:"no-pointer"}),d(G,{icon:"gear",tooltip:te(e,"terrain_settings")},k?d(O,null,d(R,{label:i("preview.factor"),value:`${h}`,onChange:e=>p(Number(e))}),d(R,{label:i("preview.offset"),value:`${f}`,onChange:e=>g(Number(e))}),d(R,{label:i("preview.peaks"),value:`${v}`,onChange:e=>_(Number(e))})):d(O,null,d(R,{label:i("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(R,{label:i("preview.depth"),value:`${f}`,onChange:e=>g(Number(e))}))),d(H,{icon:"sync",tooltip:te(e,"generate_new_seed"),onClick:()=>s(ie())})),d("canvas",{ref:M,width:C,height:C}))},ft=["dimension","worldgen/noise_settings","worldgen/configured_feature"];function gt({lang:e,model:t,version:n,id:o,shown:r}){var a;const[,i]=m(0);if(W(t,(()=>{i((e=>e+1))})),"dimension"===o&&(null==(a=null==t?void 0:t.get(new p.Path(["generator","type"])))?void 0:a.endsWith("noise"))){const o=t.get(new p.Path(["generator","biome_source"]));if(o)return d(mt,l({},{lang:e,model:t,version:n,shown:r,data:o}))}if("worldgen/noise_settings"===o&&t){const o=t.get(new p.Path([]));if(o)return d(pt,l({},{lang:e,model:t,version:n,shown:r,data:o}))}if("worldgen/configured_feature"===o&&t){const o=t.get(new p.Path([]));if(o)return d(ht,l({},{lang:e,model:t,version:n,shown:r,data:o}))}return d(O,null)}const vt={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){return Array.isArray(n)?n.map(((n,r)=>e.hook(this,t.push(r),n.node,o))):n},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const l="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[p.relativePath(n,t.validation.params.id).get()]:null,s={};return Object.keys(o).forEach((t=>{var a;l&&!Object.keys(null!=(a=l.properties)?a:{}).includes(t)||(s[t]=e.hook(this,n.push(t),o[t],r))})),s},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);return Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{r[e]=a[e].hook(this,t.push(e),n[e],o)})),r}};var _t,wt;(wt=_t||(_t={})).ID_LANGUAGE="language",wt.ID_THEME="theme",wt.ID_VERSION="schema_version",wt.ID_INDENT="indentation",wt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(wt.ID_LANGUAGE))?e:"en"},wt.getTheme=function(){var e;return null!=(e=localStorage.getItem(wt.ID_THEME))?e:"dark"},wt.getVersion=function(){const e=localStorage.getItem(wt.ID_VERSION);return e&&Ve.includes(e)?e:"1.17"},wt.getIndent=function(){var e;return null!=(e=localStorage.getItem(wt.ID_INDENT))?e:"2_spaces"},wt.setLanguage=function(e){e&&localStorage.setItem(wt.ID_LANGUAGE,e)},wt.setTheme=function(e){e&&localStorage.setItem(wt.ID_THEME,e)},wt.setVersion=function(e){e&&localStorage.setItem(wt.ID_VERSION,e)},wt.setIndent=function(e){e&&localStorage.setItem(wt.ID_INDENT,e)};const yt={"2_spaces":2,"4_spaces":4,tabs:"\t"};function bt({lang:e,name:t,model:n,blockStates:o,doCopy:r,doDownload:a,doImport:i,copySuccess:l,onError:s}){const h=te.bind(null,e),[f,g]=m(_t.getIndent()),v=u(null),_=u(null),w=u(),y=L(((e,t)=>{const n=e.schema.hook(vt,new p.ModelPath(e),e.data,{blockStates:t});return JSON.stringify(n,null,yt[f])+"\n"}),[f]);c((()=>{w.current=()=>{if(n&&o)try{const e=y(n,o);e.length>=1e4?v.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":v.current.value=e}catch(e){s(`Error getting JSON output: ${fe(e)}`),console.error(e),v.current.value=""}}})),W(n,(()=>{w.current()})),c((()=>{n&&w.current()}),[n]),c((()=>{w.current()}),[f]);c((()=>{r&&n&&o&&navigator.clipboard.writeText(y(n,o)).then((()=>{l()}))}),[r]),c((()=>{if(a&&v.current&&_.current){const e=encodeURIComponent(v.current.value);_.current.setAttribute("href",`data:text/json;charset=utf-8,${e}`),_.current.setAttribute("download",`${t}.json`),_.current.click()}}),[a]),c((()=>{i&&v.current&&(v.current.value="",v.current.select())}),[i]);return d(O,null,d("div",{class:"controls"},d(G,{icon:"gear",tooltip:h("output_settings")},Object.entries(yt).map((([e])=>d(H,{label:h(`indentation.${e}`),active:f===e,onClick:()=>{return t=e,_t.setIndent(t),void g(t);var t}}))))),d("textarea",{ref:v,class:"source",onBlur:()=>{try{const e=JSON.parse(v.current.value);null==n||n.reset(p.DataModel.wrapLists(e),!1)}catch(e){s(`Error importing: ${fe(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:h("source_placeholder")}),d("a",{ref:_,style:"display: none;"}))}function xt({title:e,link:t,icon:n,children:o}){return d("a",{class:"tool-card",href:t},n&&Ne[n],d("div",null,d("h3",null,e),o))}class kt extends p.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 Ct=["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"],Mt=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],At=["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"],zt=["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"],Vt=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],jt=["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"],It=new p.DataModel(p.MapNode(p.StringNode(),p.StringNode()),{historyMax:0});function Et({model:e,lang:t,blockStates:n}){var o;const r=new p.ModelPath(e),[a,i,l]=e.schema.hook(Ot,r,ge(e.data),t,n,{});return(null==(o=null==i?void 0:i.props)?void 0:o.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(r)}-node`,"data-category":e.schema.category(r)},d("div",{class:"node-header"},a,i),d("div",{class:"node-body"},l)):l}const Ot={base:()=>[null,null,null],boolean:(e,t,n,o,r,a)=>[null,d(Pt,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,l){const s=n.activeCase(o,!0),c=(null==t?void 0:t.context)?new p.ModelPath(o.getModel(),new p.Path(o.getArray(),[t.context])):o,[u,m,h]=s.node.hook(this,c,r,a,i,l);if(1===e.length)return[u,m,h];const f=(null==t?void 0:t.choiceContext)?new p.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new p.Path([],[t.context]):o,g=d("select",{value:s.type,onChange:n=>(n=>{var r,a,i;const l=null!=(r=e.find((e=>e.type===n)))?r:s,c=l.change?l.change(n,{wrapLists:!0}):p.DataModel.wrapLists("feature"===t.choiceContext?null==(i=null==(a=l.node.default())?void 0:a.config)?void 0:i.feature:l.node.default());o.model.set(o,c)})(n.target.value)},e.map((e=>d("option",{value:e.type},Ht(a,f.contextPush(e.type))))));return[u,d(O,null,g,m),h]},list({children:e,config:t},n,o,r,a,i){const{expand:c,collapse:u,isToggled:h}=$t(),[f,g]=m(50),v=n.getContext().join(".");if(jt.includes(v)){return[d(O,null,[...Array(t.maxLength)].map(((e,t)=>d(Rt,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(O,null,[...Array(t.maxLength)].map(((t,l)=>{var s;return e.hook(this,n.modelPush(l),null==(s=null==o?void 0:o[l])?void 0:s.node,r,a,i)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":te(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ae()},...o])}},Y.plus_circle),d(O,null,o&&Array.isArray(o)&&o.map((({node:t,id:m},p)=>{if(p===f)return d("div",{class:"node node-header"},d("label",null,te(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},te(r,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},te(r,"entries_hidden.all")));if(p>f)return null;const v=n.push(p).contextPush("entry"),_="object"===e.type(v),w=h(m);if(_&&(!1===w||void 0===w&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Rt,{lang:r,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(r,"expand")}\n${te(r,"expand_all","Ctrl")}`,onClick:c(m)},Y.chevron_right),d("label",null,Ht(r,v,`${p}`)),d(Lt,{key:m,path:v,value:t,schema:e}));return d(Nt,s(l({key:m,path:v,schema:e,value:t},{lang:r,states:a,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(p,0,{id:ae(),node:ge(t)}),n.model.set(n,e)}}]}),{ctx:s(l({},i),{index:(0===p?1:0)+(p===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(r,"collapse")}\n${te(r,"collapse_all","Ctrl")}`,onClick:u(m)},Y.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":te(r,"remove"),onClick:()=>v.set(void 0)},Y.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":te(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[p-1],e[p]]=[e[p],e[p-1]],n.model.set(n,e)},disabled:0===p},Y.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":te(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[p+1],e[p]]=[e[p],e[p+1]],n.model.set(n,e)},disabled:p===o.length-1},Y.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":te(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ae()}])}},Y.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c){var u,m,h,f,g;const{expand:v,collapse:_,isToggled:w}=$t(),y=new p.ModelPath(It,new p.Path([Tt(o.toString())])),b="block_state_map"===(null==(u=n.validation)?void 0:u.validator)?null==i?void 0:i[p.relativePath(o,n.validation.params.id).get()]:null,x=(null==b?void 0:b.properties)?p.StringNode(null,{enum:Object.keys(null!=(m=b.properties)?m:{})}):t;if(b&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(h=b.properties)?h:{}).map((([e,t])=>[e,p.StringNode(null,{enum:t})]));return Object.entries(null!=(f=b.properties)?f:{}).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])})),p.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c)}return[null,d(O,null,x.hook(this,y,null!=(g=y.get())?g:"",a,i,c)[1],d("button",{class:"add tooltipped tip-se","aria-label":te(a,"add"),onClick:()=>{const t=y.get();o.model.set(o.push(t),p.DataModel.wrapLists(e.default()))}},Y.plus_circle)),d(O,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var u,m,h,f;const g=o.modelPush(t),y="object"===e.type(g),x=w(t);if(y&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(Rt,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(a,"expand")}\n${te(a,"expand_all","Ctrl")}`,onClick:v(t)},Y.chevron_right),d("label",null,t),d(Lt,{key:t,path:g,value:n,schema:e}));const k=b?p.StringNode(null,{enum:null!=(m=null==(u=b.properties)?void 0:u[t])?m:[]}):e;(null==(h=null==b?void 0:b.properties)?void 0:h[t])&&"string"==typeof n&&!(null==(f=b.properties)?void 0:f[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(Nt,s(l({key:t,schema:k,path:g,value:n},{lang:a,states:i,ctx:c}),{label:t}),y&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${te(a,"collapse")}\n${te(a,"collapse_all","Ctrl")}`,onClick:_(t)},Y.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":te(a,"remove"),onClick:()=>g.set(void 0)},Y.trashcan))})))]},number:(e,t,n,o,r,a)=>[null,d(St,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u){var m;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:/,""))&&oe(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Wt(n,o),a={type:e.type,config:p.ObjectNode({decorators:p.ListNode(Oe),feature:Le},{context:"feature.decorated"})},i=p.ObjectNode(a,{context:"feature"}),l=new p.Path(["config","feature"]),s=new p.Path(["config","decorators"]),c=t.getModel(),d=new kt(i,(e=>{if(e.startsWith(l))return new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(s)){if(2===e.modelArr.length)return new p.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new p.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(s)){const e=[];return Wt(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(l)){const o=[];Wt(c.data,o);const r=new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(s)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(l);return c.set(new p.Path,Gt(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(l),t=[];Wt(c.data,t),t.splice(o,1);const r=Gt(e,t);return c.set(new p.Path,r,n)}{const r=new p.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 p.ModelPath(e,new p.Path(t.getArray(),["feature"])).push(n)}let h=null,f=null;if(e.optional())if(void 0===a){const t=()=>r.set(p.DataModel.wrapLists(e.default()));f=d("button",{class:"collapse closed tooltipped tip-se","aria-label":te(i,"expand"),onClick:t},Y.plus_circle)}else{const e=()=>r.set(void 0);f=d("button",{class:"collapse open tooltipped tip-se","aria-label":te(i,"remove"),onClick:e},Y.trashcan)}const g="object"==typeof a&&null!==a&&(null==(m=e.default())?void 0:m.pools)?s(l({},u),{loot:null==a?void 0:a.type}):u,v=d(O,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,s,u;const m=o(r,e),p=m.getContext().join(".");if(Mt.includes(p))return null;const[v,_,w]=t.hook(this,m,a[e],i,c,g);if(!(v||_||(null!=(u=null==(s=null==(n=null==w?void 0:w.props)?void 0:n.children)?void 0:s.length)?u:0)>0))return null;const y="object"===t.type(m)&&At.includes(p),b=zt.includes(p);return y||b?(h=d(O,null,h,d(Rt,{lang:i,path:m}),d(Ft,{lang:i,path:m}),v),f=d(O,null,f,_),y?w:null):d(Nt,l({key:e,schema:t,path:m,value:a[e]},{lang:i,states:c,ctx:g}))})));return[h,f,v]},string:(e,t,n,o,r,a)=>[null,d(Dt,l({},s(l({},e),{path:t,value:n,lang:o,states:r,ctx:a}))),null]};function Lt({path:e,value:t}){var n,o,r,a,i;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!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const l of Object.values(null!=t?t:{}))if("string"==typeof l)return d("label",null,l.replace(/^minecraft:/,""));return null}function $t(){const[e,t]=m(new Map),[n,o]=m(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 null!=(o=null==e?void 0:e.get(t))?o:n}}}function Pt({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(O,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},te(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},te(o,"true")))}function St({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(O,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(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:()=>le(e.model),class:"tooltipped tip-se","aria-label":te(r,"generate_new_seed")},Y.sync))}function Dt({path:e,getValues:t,config:n,node:o,value:r,lang:a,states:i}){var l;const s=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},c=t(),u=e.getContext().join(".");if(Vt.includes(u))return d("textarea",{value:null!=r?r:"",onBlur:s});if(Bt(n)&&!n.additional||Ct.includes(u)){let e=new p.Path([]);return Bt(n)&&"string"==typeof n.enum?e=e.contextPush(n.enum):Bt(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool||(e=e.contextPush(n.params.pool)),d("select",{value:null!=r?r:"",onChange:s},o.optional()&&d("option",{value:""},te(a,"unset")),c.map((t=>d("option",{value:t},Ht(a,e.contextPush(t.replace(/^minecraft:/,"")))))))}if(Bt(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ae();return d(O,null,d("input",{value:null!=r?r:"",onBlur:s,onKeyDown:e=>{"Enter"===e.key&&s(e)},list:c.length>0?e:""}),c.length>0&&d("datalist",{id:e},c.map((e=>d("option",{value:e})))))}{const t=null==i?void 0:i[p.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:s},o.map((e=>d("option",null,e))))}}const Nt=$((function({label:e,schema:t,path:n,value:o,lang:r,states:a,ctx:i,actions:s,children:c}){const u=t.type(n),m=t.category(n),h=n.getContext().join("."),[p,f]=J(),g=l({},i);delete g.index;const[v,_,w]=t.hook(Ot,n,o,r,a,g);return d("div",{class:`node ${u}-node`,"data-category":m},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),f()}},d(Rt,{lang:r,path:n}),d(Ft,{lang:r,path:n}),c,v,d("label",null,null!=e?e:Ht(r,n,`${n.last()}`),p&&d("div",{class:"node-menu"},null==s?void 0:s.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(H,{icon:e.icon,tooltip:te(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:te(r,e.label)))})),d("div",{class:"menu-item"},d(H,{icon:"clippy",tooltip:te(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(h)}),d("span",null,h)))),_),w&&d("div",{class:"node-body"},w))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&ve(e.ctx,t.ctx)&&ve(e.value,t.value)));function Bt(e){return!!(null==e?void 0:e.enum)}function Tt(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=te(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Jt("node-error","issue_opened",a)}function Ft({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=te(e,n);return o===n?null:Jt("node-help","info",o)}const Jt=(e,t,n)=>{const[o,r]=J();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Y[t],d("span",{class:"icon-popup"},n))};function Wt(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:oe(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Wt(null!=(o=e.config.feature)?o:"",t)):e}function Gt(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Gt(e,t)}}}function Yt({lang:e,model:t,blockStates:n,onError:o}){if(!t||!n||"none"===e)return d(O,null);const[r]=P((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(r)return d(O,null);const[,a]=m(0);return W(t,(()=>{a((e=>e+1))})),d("div",{class:"tree"},d(Et,l({},{model:t,lang:e,blockStates:n})))}function Ut({lang:e,changeTitle:t,version:n,onChangeVersion:o}){var r;const a=te.bind(null,e),[i,h]=m(null),[f,g]=P();if(f)return d("main",null,d(U,{error:`Something went wrong rendering the generator: ${f.message}`,onDismiss:g}));const v=ce(w());if(!v)return d("main",null,d(U,{error:`Cannot find generator "${w()}"`}));c((()=>{h(null)}),[v.id,n]);const _=B.versions.filter((e=>Pe(e.id,v.minVersion))).map((e=>e.id));t(a("title.generator",a(v.id)),_),Pe(n,v.minVersion)||h(`The minimum version for this generator is ${v.minVersion}`);const[y,b]=m(null),[x,k]=m(null);c((()=>{b(null),async function(e){return(await $e(e)).blockStates}(n).then((e=>k(e))),async function(e,t){var n;if(!Ie[t]||Ie[t].version!==e){const r=await $e(e);Oe=p.Reference(r.schemas,"configured_decorator"),Le=p.ChoiceNode([{type:"string",node:p.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:p.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=B.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 p.DataModel(n,{wrapLists:!0});Ie[t]?o.reset(Ie[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ie[t]={model:o,version:e}}catch(o){throw new Error(`Cannot get generator "${t}" for version "${e}": ${fe(o)}`)}}return Ie[t].model}(n,v.id).then((e=>b(e))).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id]),W(y,(()=>{h(null)}));const C=e=>{e.ctrlKey&&"z"===e.key?(N.generatorEvent("undo","Hotkey"),null==y||y.undo()):e.ctrlKey&&"y"===e.key&&(N.generatorEvent("redo","Hotkey"),null==y||y.redo())};c((()=>(document.addEventListener("keyup",C),()=>{document.removeEventListener("keyup",C)})),[y]);const[M,A]=m(""),[z,V]=m([]);c((()=>{(async function(e){return(await $e(e)).collections})(n).then((e=>{const t=(null!=M?M:"").trim().split(" "),n=e.get(v.id).map((e=>e.slice(10))).filter((e=>t.every((t=>e.includes(t)))));n&&V(n)})).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id,M]);const[j,I]=m(window.innerWidth>820),[E,L]=m(0),[$,S]=m(0),[D,F]=m(0),[J,Z]=m(!1),X=u(void 0),[K,q]=m(!1),Q=ft.includes(v.id);K&&!Q&&q(!1);let ee=1;Q&&(ee+=1),j&&(ee+=2);return d(O,null,d("main",{class:K?"has-preview":""},d(T,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d(H,{icon:"upload",label:a("import"),onClick:()=>{N.generatorEvent("import"),I(!0),F(D+1)}}),d(G,{icon:"archive",label:a("presets"),relative:!1},d(R,{icon:"search",large:!0,value:M,onChange:A,doSelect:1,placeholder:a("search")}),d("div",{class:"result-list"},z.map((e=>d(H,{label:e,onClick:()=>{return t=e,N.generatorEvent("load-preset",t),void Ae(n,null!=(o=v.path)?o:v.id,t).then((e=>{var t,n;const o=null==y?void 0:y.get(new p.Path(["generator","seed"]));void 0!==(null==(t=null==e?void 0:e.generator)?void 0:t.seed)&&void 0!==o&&(e.generator.seed=o,void 0!==(null==(n=e.generator.biome_source)?void 0:n.seed)&&(e.generator.biome_source.seed=o)),null==y||y.reset(p.DataModel.wrapLists(e),!1)}));var t,o}})))),0===z.length&&d(H,{label:a("no_presets")})),d(G,{icon:"tag",label:n},_.reverse().map((e=>d(H,{label:e,active:e===n,onClick:()=>o(e)})))),d(G,{icon:"kebab_horizontal",tooltip:a("more")},d(H,{icon:"history",label:a("reset"),onClick:()=>{N.generatorEvent("reset"),null==y||y.reset(p.DataModel.wrapLists(y.schema.default()),!0)}}),d(H,{icon:"arrow_left",label:a("undo"),onClick:e=>{e.stopPropagation(),N.generatorEvent("undo","Menu"),null==y||y.undo()}}),d(H,{icon:"arrow_right",label:a("redo"),onClick:e=>{e.stopPropagation(),N.generatorEvent("redo","Menu"),null==y||y.redo()}}))),i&&d(U,{error:i,onDismiss:()=>h(null)}),d(Yt,s(l({},{lang:e,model:y,version:n,blockStates:x}),{onError:h}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*ee}px;`},d("div",{class:`popup-action action-preview${Q?" shown":""} tooltipped tip-nw`,"aria-label":a(K?"hide_preview":"show_preview"),onClick:()=>{N.generatorEvent("toggle-preview",K?"hidden":"visible"),q(!K)}},K?Y.x_circle:Y.play),d("div",{class:`popup-action action-download${j?" shown":""} tooltipped tip-nw`,"aria-label":a("download"),onClick:()=>{N.generatorEvent("download"),S($+1)}},Y.download),d("div",{class:`popup-action action-copy${j?" shown":""}${J?" active":""} tooltipped tip-nw`,"aria-label":a(J?"copied":"copy"),onClick:()=>{N.generatorEvent("copy"),L(E+1)}},J?Y.check:Y.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":a(j?"hide_output":"show_output"),onClick:()=>{N.generatorEvent("toggle-output",j?"hidden":"visible"),I(!j),L(0),S(0),F(0)}},j?Y.chevron_right:Y.code)),d("div",{class:"popup-preview"+(K?" shown":"")},d(gt,s(l({},{lang:e,model:y,version:n,id:v.id}),{shown:K,onError:h}))),d("div",{class:"popup-source"+(j?" shown":"")},d(bt,s(l({},{lang:e,model:y,blockStates:x,doCopy:E,doDownload:$,doImport:D}),{name:null!=(r=v.schema)?r:"data",copySuccess:()=>{Z(!0),void 0!==X.current&&clearTimeout(X.current),X.current=setTimeout((()=>{Z(!1)}),2e3)},onError:h}))))}function Zt({lang:e,changeTitle:t}){const n=te.bind(null,e);return t(n("title.home")),d("main",null,d("div",{class:"home"},B.generators.filter((e=>!e.category)).map((e=>d(xt,{title:n(e.id),link:se(e.url)}))),d(xt,{title:n("worldgen"),link:"/worldgen/"}),d("hr",null),d(xt,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/"},d("p",null,"Analyse your performance reports")),d(xt,{title:"Minecraft Sounds",icon:"sounds",link:"https://misode.github.io/sounds/"},d("p",null,"Browse through and mix all the vanilla sounds")),d(xt,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/"},d("p",null,"Convert your 1.16 data packs to 1.17"))))}function Xt({lang:e,changeTitle:t}){const n=te.bind(null,e);return t(n("title.generator_category",n("worldgen"))),d("main",null,d("div",{class:"home"},B.generators.filter((e=>"worldgen"===e.category)).map((e=>d(xt,{title:n(e.id),link:se(e.url)})))))}function Kt(){const[e,t]=m("none");c((()=>{(async()=>{const e=_t.getLanguage();await Promise.all([ne("en"),..."en"!==e?[ne(e)]:[]]),t(e)})()}),[]);const[n,o]=m(_t.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",n)}),[n]);const[r,a]=m(_t.getVersion()),[i,u]=m(te(e,"title.home")),h=(e,t)=>{null!=t||(t=B.versions.map((e=>e.id))),t.splice(0,t.length-3),document.title=`${e} Minecraft ${t.join(", ")}`,u(e)};return d(O,null,d(De,l({},{lang:e,title:i,version:r,theme:n,language:e,changeLanguage:async e=>{ee[e]||await ne(e),N.setLanguage(e),_t.setLanguage(e),t(e)},changeTheme:e=>{N.setTheme(e),_t.setTheme(e),o(e)}})),d(D,{onChange:e=>{setTimeout((()=>N.pageview(se(e.url))))}},d(Zt,l({path:"/"},{lang:e,changeTitle:h})),d(Xt,l({path:"/worldgen"},{lang:e,changeTitle:h})),d(Ut,s(l({default:!0},{lang:e,version:r,changeTitle:h}),{onChangeVersion:e=>{N.setVersion(e),_t.setVersion(e),a(e)}}))))}S(d(Kt,null),document.body); -//# sourceMappingURL=index.d77bd5ec.js.map diff --git a/assets/index.d77bd5ec.js.map b/assets/index.d77bd5ec.js.map deleted file mode 100644 index 97566f52..00000000 --- a/assets/index.d77bd5ec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d77bd5ec.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../vite/preload-helper","../../src/app/Locales.ts","../../src/app/Utils.ts","../../src/app/DataFetcher.ts","../../src/app/Schemas.ts","../../src/app/components/Header.tsx","../../src/app/components/Icons.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/NoiseSettingsPreview.tsx","../../src/app/components/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/Store.ts","../../src/app/components/SourcePanel.tsx","../../src/app/components/ToolCard.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/Tree.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Worldgen.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\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 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 { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, doSelect, value, placeholder, 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\treturn
e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t
\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\tawait draw(img)\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 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\ntype BtnMenuProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu({ icon, label, relative, tooltip, children }: BtnMenuProps) {\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\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\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\tsearch: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

{error}

\n\t\t

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

\n\t
\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 config from '../config.json'\nimport English from '../locales/en.json'\n\nexport type Localize = (key: string, ...params: string[]) => string\n\ninterface Locale {\n\t[key: string]: string\n}\n\nexport const Locales: {\n\t[key: string]: Locale,\n} = {\n\tfallback: English,\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\nexport function locale(language: string, key: string, ...params: string[]): string {\n\tconst value: string | undefined = Locales[language]?.[key]\n\t\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nexport async function loadLocale(language: string) {\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\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 getGenerator(url: string) {\n\tconst trimmedUrl = url.replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\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 function unwrapLists(value: any): any {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(v => unwrapLists(v.node))\n\t} else if (typeof value === 'object' && value !== null) {\n\t\tconst res: Record = {}\n\t\tObject.entries(value).map(([k, v]) => {\n\t\t\tres[k] = unwrapLists(v)\n\t\t})\n\t\treturn res\n\t} else {\n\t\treturn value\n\t}\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../config.json'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\nimport { checkVersion } from './Schemas'\nimport { message } from './Utils'\n\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`))\n\nconst CACHE_NAME = 'misode-v1'\n\ntype VersionRef = 'mcdata_master' | 'vanilla_datapack_summary' | 'vanilla_datapack_data'\n\ntype Version = {\n\tid: string,\n\trefs: Partial<{ [key in VersionRef]: string }>,\n\tdynamic?: boolean,\n}\n\ndeclare var __MCDATA_MASTER_HASH__: string\ndeclare var __VANILLA_DATAPACK_SUMMARY_HASH__: string\n\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata'\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack'\n\nconst refs: {\n\tid: VersionRef,\n\thash: string,\n\turl: string,\n}[] = [\n\t{\n\t\tid: 'mcdata_master',\n\t\thash: __MCDATA_MASTER_HASH__,\n\t\turl: mcdataUrl,\n\t},\n\t{\n\t\tid: 'vanilla_datapack_summary',\n\t\thash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n\t\turl: vanillaDatapackUrl,\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\tconsole.debug(`[fetchData] ${JSON.stringify(version)}`)\n\n\tif (version.dynamic) {\n\t\tawait Promise.all(refs\n\t\t\t.filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n\t\t\t.map(async r => {\n\t\t\t\tconsole.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`)\n\t\t\t\tawait deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`))\n\t\t\t\tconsole.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t\tlocalStorage.setItem(`cached_${r.id}`, r.hash)\n\t\t\t\tconsole.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t}))\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t\tfetchDynamicRegistries(version, collectionTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => !r.dynamic)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, undefined, '1.15')) {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: {[id: string]: string[]} = {}\n\t\t\t\tObject.keys(data).forEach(k => {\n\t\t\t\t\tres[k.slice(10)] = Object.keys(data[k].entries)\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id] ?? [])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t\t}\n\t} else {\n\t\tawait Promise.all(registries.map(async r => {\n\t\t\ttry {\n\t\t\t\tconst url = r.path\n\t\t\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n\t\t\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`\n\t\t\t\ttarget.register(r.id, await getData(url, v => v.values))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(`Error occurred while fetching registry ${r.id}:`, message(e))\n\t\t\t}\n\t\t}))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\tif (checkVersion(version.id, undefined, '1.16')) {\n\t\tconst url = (checkVersion(version.id, undefined, '1.15'))\n\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`\n\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: BlockStateRegistry = {}\n\t\t\t\tObject.keys(data).forEach(b => {\n\t\t\t\t\tres[b] = {\n\t\t\t\t\t\tproperties: data[b].properties,\n\t\t\t\t\t\tdefault: data[b].states.find((s: any) => s.default).properties,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t} else {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t}\n}\n\nasync function fetchDynamicRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchDynamicRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.dynamic)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, '1.16')) {\n\t\tconst url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching dynamic registries:', message(e))\n\t\t}\n\t}\n}\n\nexport async function fetchPreset(version: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${registry} ${id}`)\n\tconst versionData = config.versions.find(v => v.id === version)!\n\ttry {\n\t\tconst url = `${vanillaDatapackUrl}/${versionData.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tconsole.warn(`Error occurred while fetching ${registry} preset ${id}:`, 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 config from '../config.json'\nimport { fetchData } from './DataFetcher'\nimport { message } from './Utils'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18'] 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}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\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\tthrow new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\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\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","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { locale } from '../Locales'\nimport type { VersionId } from '../Schemas'\nimport { checkVersion } from '../Schemas'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\ntype HeaderProps = {\n\tlang: string,\n\ttitle: string,\n\tversion: VersionId,\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n\tlanguage: string,\n\tchangeLanguage: (language: string) => unknown,\n}\nexport function Header({ lang, title, version, theme, changeTheme, language, changeLanguage }: HeaderProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn
\n\t\t
\n\t\t\t{Icons.home}\n\t\t\t

{title}

\n\t\t\t{gen && \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 route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t}\n\t\t
\n\t\t\n\t
\n}\n","export const Icons = {\n\thome: ,\n\treport: ,\n\tsounds: ,\n}\n","import type { BiomeSource, Climate, NoiseOctaves } from 'deepslate'\nimport { FixedBiome, MultiNoise, NoiseGeneratorSettings, NoiseSampler, NormalNoise, Random } from 'deepslate'\nimport { fetchPreset } from '../DataFetcher'\nimport type { VersionId } from '../Schemas'\nimport { clamp, deepClone, deepEqual, square, stringToColor, unwrapLists } from '../Utils'\n\ntype BiomeColors = Record\ntype BiomeSourceOptions = {\n\toctaves: NoiseOctaves,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nlet cacheState: any\nlet biomeSourceCache: BiomeSource\nlet climateSamplerCache: Climate.Sampler\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource, climateSampler } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -options.offset[0] - 100 + options.res / 2\n\tconst oz = -options.offset[1] - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\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 worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tconst b = biomeSource.getBiome(worldX, 64, worldZ, climateSampler)\n\t\t\tconst color = getBiomeColor(b, options.biomeColors)\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 {\n\tconst { biomeSource, climateSampler } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn biomeSource.getBiome(xx, 64, zz, climateSampler)\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: BiomeSource, climateSampler: Climate.Sampler }> {\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\n\t\tconst settings = NoiseGeneratorSettings.fromJson({ octaves: options.octaves })\n\t\tconst noiseSampler = new NoiseSampler(4, 4, 32, biomeSourceCache, settings.noise, options.octaves, options.seed)\n\t\tclimateSamplerCache = noiseSampler.getClimate.bind(noiseSampler)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t\tclimateSampler: climateSamplerCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(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 (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 = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = options.version === '1.18' ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = unwrapLists(state)\n\t\t\tif (options.version === '1.18') {\n\t\t\t\treturn MultiNoise.fromJson(state)\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 Random(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('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\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 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) {\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 = {\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:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_mountains': [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: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:mountains': [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: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:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_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: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_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_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 { PerlinNoise, Random } from 'deepslate'\nimport type { VersionId } from '../Schemas'\nimport { clamp, stringToColor, unwrapLists } 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\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 Random(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\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\tgetPlacements([x * 16, 0, z * 16], unwrapLists(state), ctx)\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 Math.max(value.value.min_inclusive, Math.min(value.value.max_inclusive, sampleInt(value.value.source, ctx)))\n\t\t}\n\t\treturn 1\n\t}\n}\n\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","import { PerlinNoise, Random } 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 Random(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 type { BlockPos, BlockState } from 'deepslate'\nimport { Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport type { VersionId } from '../Schemas'\nimport { checkVersion } from '../Schemas'\nimport { deepClone, deepEqual, unwrapLists } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiomeFactor: number,\n\tbiomeOffset: number,\n\tbiomePeaks: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record = {\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': [50, 50, 50],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\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.fill(generator)\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, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [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.biomeOffset, options.biomeFactor, options.offset, 200)\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\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(unwrapLists(state))\n\t// Temporary fix for slides\n\tsettings.noise.bottomSlide.target *= 128\n\tsettings.noise.topSlide.target *= 128\n\tconst shape = { factor: options.biomeFactor, offset: options.biomeOffset, peaks: options.biomePeaks, nearWater: false }\n\n\tconst newState = [state, shape, `${options.seed}`]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings, shape)\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 filled: 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.filled = []\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.filled[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 fill(generator: NoiseChunkGenerator) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.filled[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tthis.filled[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 { Path } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { NoiseGeneratorSettings } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nexport const BiomeSourcePreview = ({ model, data, shown, lang, version }: PreviewProps) => {\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\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, biomeColors: {}, 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, biomeColors: {}, 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])\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, 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
\n\t\t\t{focused && }\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t changeScale(scale * 1.5)} />\n\t\t\t\t changeScale(scale / 1.5)} />\n\t\t\t}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t newSeed(model)} />}\n\t\t
\n\t\t\n\t\n}\n\nfunction calculateState(data: any, octaves: NoiseOctaves) {\n\treturn JSON.stringify([data, octaves])\n}\n\nfunction getOctaves(obj: any): NoiseOctaves {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t\t}\n\t\t\tcase 'end':\n\t\t\tcase 'floating_islands':\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\t}\n\t\t}\n\t}\n\treturn NoiseGeneratorSettings.fromJson(obj).octaves\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown, lang }: PreviewProps) => {\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
\n\t\t\t setScale(Math.min(16, scale + 1))} />\n\t\t\t setScale(Math.max(1, scale - 1))} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\n\t\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../Schemas'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ lang, data, shown, version }: PreviewProps) => {\n\tconst loc = locale.bind(null, lang)\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biomeFactor, setBiomeFactor] = useState(0.2)\n\tconst [biomeOffset, setBiomeOffset] = useState(0.1)\n\tconst [biomePeaks, setBiomePeaks] = useState(0)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst offset = useRef(0)\n\tconst state = JSON.stringify([data, biomeFactor, biomeOffset, biomePeaks])\n\n\tconst hasPeaks = checkVersion(version, '1.18')\n\tuseEffect(() => {\n\t\tsetBiomeFactor(hasPeaks ? 600 : 0.2)\n\t\tsetBiomeOffset(hasPeaks ? 0.05 : 0.1)\n\t}, [hasPeaks])\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 = { biomeOffset, biomeFactor, biomePeaks, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(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(_, y) {\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`${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 (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, seed, shown])\n\n\treturn <>\n\t\t
\n\t\t\t{focused && }\n\t\t\t\n\t\t\t\t{hasPeaks ? <>\n\t\t\t\t\t setBiomeFactor(Number(v))} />\n\t\t\t\t\t setBiomeOffset(Number(v))} />\n\t\t\t\t\t setBiomePeaks(Number(v))} />\n\t\t\t\t : <>\n\t\t\t\t\t setBiomeFactor(Number(v))} />\n\t\t\t\t\t setBiomeOffset(Number(v))} />\n\t\t\t\t}\n\t\t\t\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 '../Schemas'\nimport { BiomeSourcePreview, DecoratorPreview, NoiseSettingsPreview } from './previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise_settings', 'worldgen/configured_feature']\n\ntype PreviewPanelProps = {\n\tlang: string,\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ lang, 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 (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 \n\t}\n\n\tif (id === 'worldgen/noise_settings' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/configured_feature' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\treturn <>\n}\n","import type { Hook } from '@mcschema/core'\nimport { relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../Schemas'\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\treturn value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\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\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\tres[f] = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t})\n\t\treturn res\n\t},\n}\n","import type { VersionId } from './Schemas'\nimport { VersionIds } from './Schemas'\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\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.17'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\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","import { DataModel, ModelPath } from '@mcschema/core'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '.'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport { transformOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry } from '../Schemas'\nimport { Store } from '../Store'\nimport { message } from '../Utils'\n\nconst OUTPUT_CHARS_LIMIT = 10000\n\nconst INDENT: Record = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n}\n\ntype SourcePanelProps = {\n\tlang: string,\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) => unknown,\n}\nexport function SourcePanel({ lang, name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst source = useRef(null)\n\tconst download = useRef(null)\n\tconst retransform = useRef()\n\n\tconst getOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n\t\treturn JSON.stringify(data, null, INDENT[indent]) + '\\n'\n\t}, [indent])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getOutput(model, blockStates)\n\t\t\t\tif (output.length >= OUTPUT_CHARS_LIMIT) {\n\t\t\t\t\tsource.current.value = output.slice(0, OUTPUT_CHARS_LIMIT) + `\\n\\nOutput is too large to display (+${OUTPUT_CHARS_LIMIT} chars)\\nExport to view complete output\\n\\n`\n\t\t\t\t} else {\n\t\t\t\t\tsource.current.value = output\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\tsource.current.value = ''\n\t\t\t}\n\t\t}\n\t})\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\tretransform.current()\n\t}, [indent])\n\n\tconst onImport = () => {\n\t\ttry {\n\t\t\tconst data = JSON.parse(source.current.value)\n\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t} catch (e) {\n\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getOutput(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 && source.current && download.current) {\n\t\t\tconst content = encodeURIComponent(source.current.value)\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.json`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && source.current) {\n\t\t\tsource.current.value = ''\n\t\t\tsource.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\treturn <> \n\t\t
\n\t\t\t\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tlink: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, link, icon, children }: ToolCardProps) {\n\treturn \n\t\t{icon && Icons[icon]}\n\t\t
\n\t\t\t

{title}

\n\t\t\t{children}\n\t\t
\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,\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 { Btn } from '../components'\nimport { Octicon } from '../components/Octicon'\nimport { useFocus } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry } from '../Schemas'\nimport { CachedDecorator, CachedFeature } from '../Schemas'\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']\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']\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']\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']\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, BlockStateRegistry, Record], JSXTriple>\n\ntype NodeProps = T & {\n\tnode: INode,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n}\n\nexport function FullNode({ model, lang, blockStates }: { model: DataModel, lang: string, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ?
\n\t\t
{prefix}{suffix}
\n\t\t
{body}
\n\t
: body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, 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, 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 = (value: string) => {\n\t\t\tconst c = choices.find(c => c.type === value) ?? choice\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(value, { wrapLists: true })\n\t\t\t\t: DataModel.wrapLists(config.choiceContext === 'feature' ?\tc.node.default()?.config?.feature : c.node.default())\n\t\t\tpath.model.set(path, newValue)\n\t\t}\n\t\tconst inject = \n\t\treturn [prefix, <>{inject}{suffix}, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, 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)}\n\t\t\t\t
\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, 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 = \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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\t{value.length > 1 &&
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) &&
\n\t\t\t\t\n\t\t\t
}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, 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, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, states, ctx)[1]}\n\t\t\t\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t})}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, states, ctx) {\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 = \n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = \n\t\t\t}\n\t\t}\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, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\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}{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 \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, states, ctx) {\n\t\treturn [null, , null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn \n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn \n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn \n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map())\n\tconst [toggleAll, setToggleAll] = useState(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\treturn toggleState?.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t\n\t\t\n\t\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps) {\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 {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && }\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && }\n\t\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, states }: NodeProps) {\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\tif (nbtFields.includes(context)) {\n\t\treturn \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 (!isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string') {\n\t\t\tcontext = context.contextPush(config.params.pool)\n\t\t}\n\t\treturn \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 \n\t} else {\n\t\tconst datalistId = hexId()\n\t\treturn <>\n\t\t\t {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && \n\t\t\t\t{values.map(v => }\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,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, 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 = {...ctx}\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, states, newCtx)\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t\n\t\t\t{suffix}\n\t\t
\n\t\t{body &&
{body}
}\n\t
\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 = locale(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 = locale(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 = locale(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
\n\t\t{Octicon[icon]}\n\t\t{popup}\n\t
\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 { useModel } from '../hooks'\nimport { FullNode } from '../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../Schemas'\n\ntype TreePanelProps = {\n\tlang: string,\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ lang, model, blockStates, onError }: TreePanelProps) {\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
\n\t\t\n\t
\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl } from 'preact-router'\nimport { useEffect, useErrorBoundary, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnInput, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SourcePanel, Tree } from '../components'\nimport { fetchPreset } from '../DataFetcher'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry, VersionId } from '../Schemas'\nimport { checkVersion, getBlockStates, getCollections, getModel } from '../Schemas'\nimport { getGenerator } from '../Utils'\n\ntype GeneratorProps = {\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tonChangeVersion: (version: VersionId) => unknown,\n\tdefault?: true,\n}\nexport function Generator({ lang, changeTitle, version, onChangeVersion }: GeneratorProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn
\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn
\n\t}\n\n\tuseEffect(() => {\n\t\tsetError(null)\n\t}, [gen.id, version])\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tchangeTitle(loc('title.generator', loc(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\n\tconst [model, setModel] = useState(null)\n\tconst [blockStates, setBlockStates] = useState(null)\n\tuseEffect(() => {\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(m => setModel(m))\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tuseModel(model, () => {\n\t\tsetError(null)\n\t})\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\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t}\n\t}, [model])\n\n\tconst [presetFilter, setPresetFilter] = useState('')\n\tconst [presetResults, setPresetResults] = useState([])\n\tuseEffect(() => {\n\t\tgetCollections(version)\n\t\t\t.then(collections => {\n\t\t\t\tconst terms = (presetFilter ?? '').trim().split(' ')\n\t\t\t\tconst presets = collections.get(gen.id)\n\t\t\t\t\t.map(p => p.slice(10))\n\t\t\t\t\t.filter(p => terms.every(t => p.includes(t)))\n\t\t\t\tif (presets) {\n\t\t\t\t\tsetPresetResults(presets)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id, presetFilter])\n\n\tconst loadPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tfetchPreset(version, gen.path ?? gen.id, id).then(preset => {\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\tmodel?.reset(DataModel.wrapLists(preset), false)\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, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef(undefined)\n\tconst copySuccess = () => {\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\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id)\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}\n\n\treturn <>\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{presetResults.map(preset => loadPreset(preset)} />)}\n\t\t\t\t\t
\n\t\t\t\t\t{presetResults.length === 0 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t onChangeVersion(v)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t{error && setError(null)} />}\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{Octicon.download}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype HomeProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Home({ lang, changeTitle }: HomeProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.home'))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t

Analyse your performance reports

\n\t\t\t
\n\t\t\t\n\t\t\t\t

Browse through and mix all the vanilla sounds

\n\t\t\t
\n\t\t\t\n\t\t\t\t

Convert your 1.16 data packs to 1.17

\n\t\t\t
\n\t\t
\n\t
\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype WorldgenProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Worldgen({ lang, changeTitle }: WorldgenProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.generator_category', loc('worldgen')))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => g.category === 'worldgen').map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t
\n}\n","import { render } from 'preact'\nimport type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport config from '../config.json'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { loadLocale, locale, Locales } from './Locales'\nimport { Generator, Home, Worldgen } from './pages'\nimport type { VersionId } from './Schemas'\nimport { Store } from './Store'\nimport { cleanUrl } from './Utils'\n\nconst VERSIONS_IN_TITLE = 3\n\nfunction Main() {\n\tconst [lang, setLanguage] = useState('none')\n\tconst changeLanguage = async (language: string) => {\n\t\tif (!Locales[language]) {\n\t\t\tawait loadLocale(language)\n\t\t}\n\t\tAnalytics.setLanguage(language)\n\t\tStore.setLanguage(language)\n\t\tsetLanguage(language)\n\t}\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 [theme, setTheme] = useState(Store.getTheme())\n\tconst changeTheme = (theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst [version, setVersion] = useState(Store.getVersion())\n\tconst changeVersion = (version: VersionId) => {\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}\n\n\tconst [title, setTitle] = useState(locale(lang, 'title.home'))\n\tconst changeTitle = (title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tversions.splice(0, versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${versions.join(', ')}`\n\t\tsetTitle(title)\n\t}\n\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
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n}\n\nrender(
, 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","large","doSelect","value","placeholder","onChange","onInput","e","value2","target","ref","useRef","current","select","stopPropagation","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","s2","width","height","img","getImageData","ownCount","putImageData","setActive","useState","hider","model","invalidated","listener","[object Object]","addListener","removeListener","relative","children","useFocus","Btn","__spreadProps","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","generatorEvent","archive","xmlns","viewBox","fill-rule","d","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","download","duplicate","eye","eye_closed","gear","globe","history","info","issue_opened","kebab_horizontal","link","mark_github","moon","play","plus","plus_circle","search","sun","sync","tag","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","Promise","all","map","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Locales","fallback","English","key","params","replace","parseInt","match","slice","resolveLocaleParams","en","langConfig","config","languages","find","lang","data","__variableDynamicImportRuntime0__","schema","schemas","__variableDynamicImportRuntime1__","__spreadValues","default","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","seed","dimensions","get","Path","set","keys","forEach","url","replaceAll","trimmedUrl","generators","g2","str","h","abs","i","imul","charCodeAt","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","unwrapLists","v","node","entries","k","localStorage","removeItem","mcdataUrl","vanillaDatapackUrl","refs","hash","versionId","collectionTarget","blockStateTarget","versions","debug","JSON","stringify","dynamic","filter","getItem","r","matches","cache","caches","open","promises","request","push","delete","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","data2","register","path","values","properties","states","assign","vanilla_datapack_summary","registry","versionData","vanilla_datapack_data","fetch","json","fn","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","CachedDecorator","CachedFeature","collections","getCollections","blockStates","fetchData","getSchemas","minVersionId","maxVersionId","findIndex","Themes","system","dark","light","title","changeTheme","changeLanguage","loc","locale","bind","gen","getGenerator","getCurrentUrl","Link","Icons","home","BtnMenu","route","cleanUrl","name","th","fill","rx","y","report","sounds","cx","cy","clip-rule","cacheState","biomeSourceCache","climateSamplerCache","state","options","newState","octaves","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","preset","NetherPreset18","NetherPreset","fetchPreset","generator","biome_source","OverworldPreset18","MultiNoise","fromJson","noise","config2","firstOctave","clamp","NormalNoise","Random","n","n2","sample","minDist","Infinity","minBiome","parameters","p","dist","square","altitude","temperature","humidity","weirdness","offset","getBiomeSource","settings","NoiseGeneratorSettings","noiseSampler","NoiseSampler","getClimate","biomeSource","climateSampler","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:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","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:mountains","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: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:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:snowcapped_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","amplitudes","temperature_noise","humidity_noise","weirdness_noise","continentalness","erosion","depth","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","sampleInt","this","pos","feature","j2","base","spread","normalize","min_inclusive","max_inclusive","source","indexOf","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","f","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","factor","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","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","ox","noise1","fillNoiseColumn","noise2","yy","oy","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:netherrack","minecraft:end_stone","generatorCache","chunkCache","bottomSlide","topSlide","shape","biomeFactor","biomeOffset","peaks","biomePeaks","nearWater","NoiseChunkGenerator","getCached","LevelSlice","minY","generator2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","filled","chunks","cached","Chunk","ChunkPos","create","Z","chunk","chunkIndex","BiomeSourcePreview","shown","setScale","focused","setFocused","refineTimeout","getOctaves","calculateState","useCanvas","oz","col","worldX","worldZ","getBiomeColor","getBiome","biomeMap","setTimeout","xx","zz","toWorld","changeScale","newScale","newSeed","DecoratorPreview","setSeed","randomSeed","NoiseSettingsPreview","setBiomeFactor","setBiomeOffset","setBiomePeaks","hasPeaks","worldY","min_y","BtnInput","HasPreview","setCount","transformOutput","switchNode","props","hook","blockState","validation","validator","relativePath","includes","getActiveFields","activeFields","enabled","Store","Store2","getLanguage","getTheme","getVersion","getIndent","setIndent","indent","INDENT","2_spaces","4_spaces","tabs","doCopy","doDownload","doImport","copySuccess","onError","retransform","getOutput","useCallback","model2","blockStates2","ModelPath","output","clipboard","writeText","content","encodeURIComponent","setAttribute","click","changeIndent","onBlur","parse","DataModel","wrapLists","spellcheck","autocorrect","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","some","data-category","boolean","BooleanSuffix","choices","choice","activeCase","contextPath","context","getModel","getArray","choiceContextPath","choiceContext","inject","c2","newValue","change","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","onSelect","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isObject","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","newPath","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","newCtx","pools","loot","child","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","Map","toggleAll","setToggleAll","evt","ctrlKey","integer","parsed","parseFloat","onKeyDown","padStart","getValues","isEnum","additional","context2","pool","datalistId","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","result","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","changeTitle","onChangeVersion","setError","errorBoundary","errorRetry","ErrorPanel","allowedVersions","setModel","setBlockStates","Reference","ChoiceNode","schemaName","validate","m","catch","onKeyUp","undo","redo","presetFilter","setPresetFilter","presetResults","setPresetResults","terms","trim","split","presets","every","t","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","copyActive","setCopyActive","copyTimeout","previewShown","setPreviewShown","hasPreview","actionsShown","Ad","loadPreset","Tree","PreviewPanel","SourcePanel","ToolCard","loadLocale","documentElement","setTitle","title2","Header","theme2","Router","Home","Worldgen","Generator","version2","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/vendor.8214e08f.js b/assets/vendor.8214e08f.js new file mode 100644 index 00000000..50aee5ac --- /dev/null +++ b/assets/vendor.8214e08f.js @@ -0,0 +1,3 @@ +var e,t,r,o,i=Object.defineProperty,a=Object.defineProperties,n=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m=(e,t)=>{for(var r in t||(t={}))c.call(t,r)&&d(e,r,t[r]);if(s)for(var r of s(t))l.call(t,r)&&d(e,r,t[r]);return e},_=(e,t)=>a(e,n(t)),p=e=>"symbol"==typeof e?e:e+"",u={},f=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(e,t){for(var r in t)e[r]=t[r];return e}function g(e){var t=e.parentNode;t&&t.removeChild(e)}function v(e,t,r){var o,i,a,n=arguments,s={};for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:s[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a0?y(p.type,p.props,p.key,null,p.__v):p)){if(p.__=r,p.__b=r.__b+1,null===(_=v[d])||_&&p.key==_.key&&p.type===_.type)v[d]=void 0;else for(m=0;mt.rank?-1:e.index-t.index}function H(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,W(t).map(X).join(""));var t}(e),e.props}function W(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function X(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,J=[],K=[],G={};function V(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:G).pathname||"")+(e.search||"")}function Q(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=J.length;t--;)if(J[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ee(e)}function ee(e){for(var t=!1,r=0;r0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){J.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),J.splice(J.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,r){return e.filter(H).sort(Z).map((function(e){var o=q(t,e.props.path,e.props);if(o){if(!1!==r){var i={url:t,matches:o};return U(i,o),delete i.ref,delete i.key,function(e,t,r){var o,i,a,n=arguments,s=b({},e.props);for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:s[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a=o.__.length&&o.__.push({}),o.__[t]}function ve(e){return me=1,function(e,t,r){var o=ge(ce++,2);return o.t=e,o.__c||(o.__=[r?r(t):Le(void 0,t),function(e){var t=o.t(o.__[0],e);o.__[0]!==t&&(o.__=[t,o.__[1]],o.__c.setState({}))}],o.__c=le),o.__}(Le,e)}function ye(t,r){var o=ge(ce++,3);!e.__s&&Pe(o.__H,r)&&(o.__=t,o.__H=r,le.__H.__h.push(o))}function Ne(e){return me=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var r=ge(ce++,7);return Pe(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function ke(e,t){return me=8,Oe((function(){return e}),t)}function we(e){var t=ge(ce++,10),r=ve();return t.__=e,le.componentDidCatch||(le.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function xe(){_e.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(Se),t.__H.__h.forEach(Me),t.__H.__h=[]}catch(r){t.__H.__h=[],e.__e(r,t.__v)}})),_e=[]}e.__b=function(e){le=null,pe&&pe(e)},e.__r=function(e){ue&&ue(e),ce=0;var t=(le=e.__c).__H;t&&(t.__h.forEach(Se),t.__h.forEach(Me),t.__h=[])},e.diffed=function(t){fe&&fe(t);var r=t.__c;r&&r.__H&&r.__H.__h.length&&(1!==_e.push(r)&&de===e.requestAnimationFrame||((de=e.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(o),je&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(r,100);je&&(t=requestAnimationFrame(r))})(xe)),le=void 0},e.__c=function(t,r){r.some((function(t){try{t.__h.forEach(Se),t.__h=t.__h.filter((function(e){return!e.__||Me(e)}))}catch(o){r.some((function(e){e.__h&&(e.__h=[])})),r=[],e.__e(o,t.__v)}})),he&&he(t,r)},e.unmount=function(t){be&&be(t);var r=t.__c;if(r&&r.__H)try{r.__H.__.forEach(Se)}catch(o){e.__e(o,r.__v)}};var je="function"==typeof requestAnimationFrame;function Se(e){var t=le;"function"==typeof e.__c&&e.__c(),le=t}function Me(e){var t=le;e.__c=e.__(),le=t}function Pe(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Le(e,t){return"function"==typeof t?t(e):t}var Ce="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Be={},ze={},Re={};Object.defineProperty(Re,"__esModule",{value:!0}),Re.ModelPath=Re.Path=Re.relativePath=void 0,Re.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ae{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 Ae(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ae(this.modelArr.slice(1),this.contextArr)}pop(){return new Ae(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ae([...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 Ae([...this.modelArr],[...this.contextArr,t])}copy(){return new Ae([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Ie(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,r)=>e===this.modelArr[t+r]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Re.Path=Ae;class Ie extends Ae{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 Ie(this.model,super.slice(e,t))}shift(){return new Ie(this.model,super.shift())}pop(){return new Ie(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie(this.model,super.modelPush(e))}contextPush(e){return new Ie(this.model,super.contextPush(e))}copy(){return new Ie(this.model,super.copy())}}Re.ModelPath=Ie;var Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.Errors=void 0;class De{constructor(){this.errors=[]}add(e,t,...r){return this.errors.push({path:e,error:t,params:r}),!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}}Te.Errors=De;var Ee={};function Fe(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.hexId=Ee.quoteString=Ee.escapeString=void 0,Ee.escapeString=Fe,Ee.quoteString=function(e){return`"${Fe(e)}"`};const $e=e=>("0"+e.toString(16)).substr(-2);Ee.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,$e).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Ue=Re,qe=Te,Ze=Ee;class He{constructor(e,t){var r,o,i,a;this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50,this.verbose=null!==(o=null==t?void 0:t.verbose)&&void 0!==o&&o,this.wrapLists=null!==(i=null==t?void 0:t.wrapLists)&&void 0!==i&&i,this.schema=e;const n=null!==(a=null==t?void 0:t.initialData)&&void 0!==a?a:e.default();this.data=this.wrapLists?He.wrapLists(n):n,this.listeners=[],this.errors=new qe.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,r){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach((e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(this.wrapLists&&"number"==typeof e?o[e]={node:{},id:Ze.hexId()}:o[e]={}),o=this.wrapLists&&"number"==typeof e?o[e].node:o[e]})),null!==o&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:this.wrapLists&&"number"==typeof e.last()?o[e.last()]={node:t,id:Ze.hexId()}:o[e.last()]=t,r||(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(o)}))}static wrapLists(e){if(Array.isArray(e))return e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)})),t}return e}static unwrapLists(e){if(Array.isArray(e))return e.map((e=>this.unwrapLists(e.node)));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.unwrapLists(r)})),t}return e}}ze.DataModel=He;var We,Xe={};We=Xe,Object.defineProperty(We,"__esModule",{value:!0}),We.Keep=We.Opt=We.Has=We.Mod=We.Base=void 0,We.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,...r){return e.base({node:this},t,...r)},canUpdate:()=>!1,update:()=>[]},We.Mod=(e,t)=>m(m({},e),"function"==typeof t?t(e):t),We.Has=(e,t)=>We.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),We.Opt=function(e){return _(m({},e),{optional:()=>!0})},We.Keep=function(e){return _(m({},e),{keep:()=>!0})};var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.BooleanNode=void 0;const Je=ze,Ke=Xe;Ye.BooleanNode=()=>_(m({},Ke.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,o){return o.loose&&"boolean"!=typeof t&&(t=o.wrapLists?Je.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...r)}});var Ge={},Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.ListNode=void 0;const Qe=ze,et=Xe;Ve.ListNode=(e,t)=>{var r,o;const i=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,a=null!==(o=null==t?void 0:t.maxLength)&&void 0!==o?o:1/0,n=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return _(m({},et.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(i)].map((t=>e.default())):[],navigate(t,r){const o=r+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,o,s){return s.loose&&!Array.isArray(r)&&(r=s.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),Array.isArray(r)?(n&&(r.lengtha)?i===a?o.add(t,"error.invalid_list_range.exact",r.length,i):o.add(t,"error.invalid_list_range.between",r.length,i,a):r.lengtha&&o.add(t,"error.invalid_list_range.larger",r.length,a),r.map(((r,i)=>{const a=e.validate(t.push(i),s.wrapLists?r.node:r,o,s);return s.wrapLists?{node:a,id:r.id}:a}))):(o.add(t,"error.expected_list"),r)},hook(r,o,...i){var a;return(null!==(a=r.list)&&void 0!==a?a:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},o,...i)}})};var tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.SwitchNode=void 0;const rt=Xe;tt.SwitchNode=e=>_(m({},rt.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 r;const o=t+1;return null===(r=this.activeCase(e.slice(0,o)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,o;return null!==(o=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,r){var o,i;return null!==(i=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,r))&&void 0!==i?i:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,o){let i=this.activeCase(e);return void 0===i?t:i.node.validate(e,t,r,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const o=(e,t)=>{var r,o;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},i=e.filter((e=>e.match(t))).sort(o);return r&&0===i.length?e.sort(o)[0]:i.length>0?i[0]:void 0},hook(e,t,...r){return this.activeCase(t,!0).node.hook(e,t,...r)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=Ve,r=tt;e.ChoiceNode=(e,t)=>{const o=r.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 _(m({},o),{validate(e,t,r,i){let a=o.activeCase(e,!0);return a.node.optional()?t:a.node.validate(e,t,r,i)},hook(r,i,...a){var n;return(null!==(n=r.choice)&&void 0!==n?n:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:o},i,...a)}})};const o=r=>(o,i)=>e.ChoiceNode([{type:r,node:o,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:o.default()}},{type:"list",node:t.ListNode(o),change:e=>e?[e]:[]}],i);e.ObjectOrList=o("object"),e.StringOrList=o("string"),e.ObjectOrPreset=(t,r,o)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(o)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])}(Ge);var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.MapNode=void 0;const it=Xe,at=ze;ot.MapNode=(e,t,r)=>_(m({},it.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const o=r+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,o,i,a){if(a.loose&&"object"!=typeof o&&(o=a.wrapLists?at.DataModel.wrapLists(this.default()):this.default()),null===o||"object"!=typeof o)return i.add(r,"error.expected_object"),o;let n={};return Object.keys(o).forEach((s=>{e.validate(r,s,i,a),n[s]=t.validate(r.push(s),o[s],i,a)})),n},validationOption(t){var o;return null!==(o=null==r?void 0:r.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,i,...a){var n;return(null!==(n=o.map)&&void 0!==n?n:o.base).call(o,{node:this,keys:e,children:t,config:null!=r?r:{}},i,...a)}});var nt={};Object.defineProperty(nt,"__esModule",{value:!0}),nt.NumberNode=void 0;const st=ze,ct=Xe;nt.NumberNode=e=>{var t,r,o;const i=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,n=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,s=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return _(m({},ct.Base),{type:()=>"number",default:()=>a>0?a:0,validate(e,t,r,o){return o.loose&&"number"!=typeof t&&(t=o.wrapLists?st.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?r.add(e,"error.expected_number"):i&&!Number.isInteger(t)?r.add(e,"error.expected_integer"):s&&(tn)?r.add(e,"error.invalid_number_range.between",t,a,n):tn&&r.add(e,"error.invalid_number_range.larger",t,n),t},hook(t,r,...o){var c;return(null!==(c=t.number)&&void 0!==c?c:t.base).call(t,{node:this,integer:i,min:a,max:n,between:s,config:null!=e?e:{}},r,...o)}})};var lt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Xe,r=Re,o=Te,i=Ee,a=ze;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(n,d)=>{var u,f;const h=n,{[u=e.Switch]:b,[f=e.Case]:g}=h,v=((e,t)=>{var r={};for(var o in e)c.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&s)for(var o of s(e))t.indexOf(o)<0&&l.call(e,o)&&(r[o]=e[o]);return r})(h,[p(u),p(f)]),y=e=>{if(void 0===b)return v;const t=r.relativePath(e,b).get(),o=g[t];return m(m({},v),o)},N=(e,t)=>{var o;const i=b?r.relativePath(e,b).get():void 0,a=b&&null!==(o=g[i])&&void 0!==o?o:{},n=Object.keys(a),s=(null==d?void 0:d.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[d.context])):e;return(!(null==d?void 0:d.disableSwitchContext)&&i&&n.includes(t)?s.contextPush(i):s).push(t)};return _(m({},t.Base),{type:()=>"object",category:()=>null==d?void 0:d.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,o=e.getArray();if(o.length<=r)return this;const i=y(e.slice(0,r))[o[r]];return null==i?void 0:i.navigate(e,r)},pathPush:(e,t)=>N(e,t.toString()),suggest(e,t){const r=y(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!o.includes(e))).map(i.quoteString)},validate(e,t,i,n){if(n.loose&&"object"!=typeof t&&(t=n.wrapLists?a.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return i.add(e,"error.expected_object"),t;let s=v;if(b){const i=r.relativePath(e,b);let a=i.get();if(e.equals(i.pop())){const r=i.last();a=v[r].validate(e.push(r),t[r],new o.Errors,n)}s=m(m({},s),g[a])}const c=Object.keys(s),l=c.filter((e=>!s[e].optional())),d=new Set([...l,...Object.keys(t)]);let _={};return d.forEach((r=>{if(c.includes(r)){if(!s[r].enabled(e))return;const o=s[r].validate(e.push(r),t[r],i,n);!s[r].keep()&&s[r].optional()&&(void 0===o||Array.isArray(o)&&0===o.length||o.constructor===Object&&0===Object.keys(o).length)?delete _[r]:(_[r]=o,e.getModel().set(e.push(r),o,!0))}else _[r]=t[r]})),_},hook(e,t,...r){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:v,config:null!=d?d:{},filter:b,cases:g,getActiveFields:y,getChildModelPath:N},t,...r)}})}}(lt);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.Reference=void 0,dt.Reference=(e,t)=>({type(r){return e.get(t).type.bind(this)(r)},category(r){return e.get(t).category.bind(this)(r)},default(){return e.get(t).default.bind(this)()},transform:(r,o)=>e.get(t).transform(r,o),enabled(r){return e.get(t).enabled.bind(this)(r)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(r,o){return e.get(t).navigate.bind(this)(r,o)},pathPush(r,o){return e.get(t).pathPush.bind(this)(r,o)},suggest(r,o){return e.get(t).suggest.bind(this)(r,o)},validate(r,o,i,a){return e.get(t).validate.bind(this)(r,o,i,a)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,o,...i){return e.get(t).hook.bind(this)(r,o,...i)},activeCase(r,o){return e.get(t).activeCase.bind(this)(r,o)},canUpdate(r,o){return e.get(t).canUpdate.bind(this)(r,o)},update(r,o){return e.get(t).update.bind(this)(r,o)}});var mt={};Object.defineProperty(mt,"__esModule",{value:!0}),mt.StringNode=void 0;const _t=Xe,pt=Ee,ut=ze,ft=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},ht=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};mt.StringNode=(e,t)=>{const r=ft(t)?"string"==typeof t.enum?()=>{var r;return null!==(r=null==e?void 0:e.get(t.enum))&&void 0!==r?r:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==r?r:[]}:()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool))&&void 0!==r?r:[]}:()=>t.params.pool:()=>[];return _(m({},_t.Base),{type:()=>"string",default:()=>"",validate(e,o,i,a){if(a.loose&&"string"!=typeof o&&(o=(a.wrapLists?ut.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof o)return i.add(e,"error.expected_string"),o;if(ht(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(ft(t)&&t.additional)return o;const n=r();return n.length>0&&!n.includes(o)&&i.add(e,"error.invalid_enum_option",o),o},suggest:()=>r().map(pt.quoteString),validationOption:()=>ht(t)?t:void 0,hook(e,o,...i){var a;return(null!==(a=e.string)&&void 0!==a?a:e.base).call(e,{node:this,getValues:r,config:t},o,...i)}})};var bt={};Object.defineProperty(bt,"__esModule",{value:!0});var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.CollectionRegistry=gt.SchemaRegistry=void 0;gt.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}};gt.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 vt={};Object.defineProperty(vt,"__esModule",{value:!0}),function(e){var t=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=Ce&&Ce.__exportStar||function(e,r){for(var o in e)"default"===o||r.hasOwnProperty(o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),r(ze,e),r(Re,e),r(Te,e),r(Xe,e),r(Ye,e),r(Ge,e),r(Ve,e),r(ot,e),r(nt,e),r(lt,e),r(dt,e),r(mt,e),r(tt,e),r(bt,e),r(gt,e),r(vt,e)}(Be);var yt={},Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.initCollections=void 0,Nt.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["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("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("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("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 Ot={},kt={},wt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Range=e.ConditionCases=void 0;const t=Be;e.initCommonSchemas=function(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.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,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o: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:i({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,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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())}}}}(wt);var xt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Be,r=wt;e.initPredicatesSchemas=function(o,i){const a=t.Reference.bind(void 0,o),n=t.StringNode.bind(void 0,i),s=t.ChoiceNode([{type:"string",node:n(),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}]);o.register("item_predicate",t.ObjectNode({item:t.Opt(n({validator:"resource",params:{pool:"item"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(r.Range()),durability:t.Opt(r.Range()),potion:t.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(a("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(r.Range())},{context:"enchantment"})),o.register("block_predicate",t.ObjectNode({block:t.Opt(n({validator:"resource",params:{pool:"block"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(n(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(n(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range())})),biome:t.Opt(n({enum:"biome"})),feature:t.Opt(n({enum:"structure_feature"})),dimension:t.Opt(n({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(r.Range({integer:!0,min:0,max:15}))})),block:t.Opt(a("block_predicate")),fluid:t.Opt(a("fluid_predicate"))},o.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),o.register("statistic_predicate",t.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[t.Switch]:[{push:"type"}],[t.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"}})}}})),o.register("player_predicate",t.ObjectNode({gamemode:t.Opt(n({enum:"gamemode"})),level:t.Opt(r.Range()),advancements:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(n(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(a("statistic_predicate")))},{context:"player"})),o.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(r.Range()),duration:t.Opt(r.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),o.register("distance_predicate",t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range()),absolute:t.Opt(r.Range()),horizontal:t.Opt(r.Range())},{context:"distance"})),o.register("entity_predicate",t.ObjectNode({type:t.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(n({validator:"team"})),location:t.Opt(a("location_predicate")),distance:t.Opt(a("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(n({enum:"slot"}),a("item_predicate"))),player:t.Opt(a("player_predicate")),effects:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),a("status_effect_predicate")))},{context:"entity"})),o.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(a("entity_predicate")),direct_entity:t.Opt(a("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",t.ObjectNode({dealt:t.Opt(r.Range()),taken:t.Opt(r.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(a("entity_predicate")),type:t.Opt(a("damage_source_predicate"))},{context:"damage"}))}}(xt),Object.defineProperty(kt,"__esModule",{value:!0}),kt.initAdvancementSchemas=void 0;const jt=Be,St=wt,Mt=xt;kt.initAdvancementSchemas=function(e,t){const r=jt.Reference.bind(void 0,e),o=jt.StringNode.bind(void 0,t);e.register("advancement",jt.Mod(jt.ObjectNode({display:jt.Opt(jt.Mod(jt.ObjectNode({icon:jt.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:jt.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:jt.Opt(o()),frame:jt.Opt(o({enum:["task","challenge","goal"]})),show_toast:jt.Opt(jt.BooleanNode()),announce_to_chat:jt.Opt(jt.BooleanNode()),hidden:jt.Opt(jt.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:jt.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:jt.MapNode(o(),r("advancement_criteria")),requirements:jt.Opt(jt.ListNode(jt.ListNode(o()))),rewards:jt.Opt(jt.ObjectNode({function:jt.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:jt.Opt(jt.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:jt.Opt(jt.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:jt.Opt(jt.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",jt.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:jt.Opt(jt.ObjectNode({[jt.Switch]:["pop",{push:"trigger"}],[jt.Case]:{"minecraft:bee_nest_destroyed":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:jt.Opt(jt.NumberNode({integer:!0})),item:jt.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:jt.Opt(r("entity_predicate")),partner:jt.Opt(r("entity_predicate")),child:jt.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:jt.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:jt.Opt(o({enum:"dimension"})),to:jt.Opt(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:jt.Opt(jt.ListNode(jt.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:jt.Opt(St.Range())},"minecraft:consume_item":{item:jt.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:jt.Opt(r("entity_predicate")),zombie:jt.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:jt.Opt(jt.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),state:jt.Opt(jt.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:jt.Opt(St.Range()),item:jt.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:jt.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:jt.Opt(r("entity_predicate")),killing_blow:jt.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:jt.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:jt.Opt(r("entity_predicate")),item:jt.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Mt.LocationFields,"minecraft:inventory_changed":{slots:jt.Opt(jt.ObjectNode({empty:jt.Opt(St.Range()),occupied:jt.Opt(St.Range()),full:jt.Opt(St.Range())})),items:jt.Opt(jt.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:jt.Opt(St.Range()),durability:jt.Opt(St.Range()),item:jt.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:jt.Opt(St.Range()),victims:jt.Opt(jt.ListNode(jt.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:jt.Opt(St.Range()),duration:jt.Opt(St.Range())},"minecraft:location":Mt.LocationFields,"minecraft:nether_travel":{distance:jt.Opt(St.Range()),entered:jt.Opt(r("location_predicate")),exited:jt.Opt(r("location_predicate"))},"minecraft:placed_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),state:jt.Opt(jt.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:jt.Opt(r("item_predicate")),location:jt.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:jt.Opt(r("damage_predicate")),entity:jt.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:jt.Opt(r("entity_predicate")),killing_blow:jt.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:jt.Opt(jt.ObjectNode({block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),tag:jt.Opt(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:jt.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Mt.LocationFields,"minecraft:slide_down_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:jt.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:jt.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:jt.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:jt.Opt(St.Range())},"minecraft:used_totem":{item:jt.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:jt.Opt(r("entity_predicate")),item:jt.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Mt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initConditionSchemas=void 0;const Lt=Be,Ct=wt;Pt.initConditionSchemas=function(e,t){const r=Lt.Reference.bind(void 0,e),o=Lt.StringNode.bind(void 0,t);e.register("predicate",Lt.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Lt.Mod(Lt.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Lt.Switch]:[{push:"condition"}],[Lt.Case]:Ct.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Bt={},zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.LootFunctions=zt.LootConditions=zt.LootCopySources=zt.LootEntitySources=zt.LootTableTypes=void 0,zt.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]}]]),zt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),zt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),zt.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",[]]]),zt.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(Bt,"__esModule",{value:!0}),Bt.initLootTableSchemas=void 0;const Rt=Be,At=zt,It=wt;Bt.initLootTableSchemas=function(e,t){const r=Rt.Reference.bind(void 0,e),o=Rt.StringNode.bind(void 0,t),i={conditions:Rt.Opt(Rt.ListNode(r("loot_condition")))},a=m({functions:Rt.Opt(Rt.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of At.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Rt.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Rt.SwitchNode(i)}const s=n(At.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(At.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(At.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(At.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Rt.Mod(Rt.ObjectNode({type:Rt.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Rt.Opt(Rt.ListNode(Rt.Mod(Rt.ObjectNode(m({rolls:It.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Rt.Opt(It.Range({integer:!0})),entries:Rt.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Rt.Opt(Rt.ListNode(r("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",Rt.Mod(Rt.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Rt.Opt(Rt.Mod(Rt.NumberNode({integer:!0,min:1}),p)),quality:Rt.Opt(Rt.Mod(Rt.NumberNode({integer:!0}),p)),[Rt.Switch]:[{push:"type"}],[Rt.Case]:{"minecraft:alternatives":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Rt.Opt(Rt.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Rt.Mod(Rt.ObjectNode({function:c,[Rt.Switch]:[{push:"function"}],[Rt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Rt.Mod(Rt.ObjectNode({bonusMultiplier:Rt.Mod(Rt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Rt.Mod(Rt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Rt.Mod(Rt.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:d},"minecraft:copy_nbt":{source:d,ops:Rt.ListNode(Rt.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:Rt.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Rt.Opt(Rt.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:It.Range({allowBinomial:!0}),treasure:Rt.Opt(Rt.BooleanNode())},"minecraft:exploration_map":{destination:Rt.Opt(o({enum:"structure_feature"})),decoration:Rt.Opt(o({enum:"map_decoration"})),zoom:Rt.Opt(Rt.NumberNode({integer:!0})),search_radius:Rt.Opt(Rt.NumberNode({integer:!0})),skip_existing_chunks:Rt.Opt(Rt.BooleanNode())},"minecraft:fill_player_head":{entity:l},"minecraft:limit_count":{limit:It.Range({bounds:!0})},"minecraft:looting_enchant":{count:It.Range({bounds:!0}),limit:Rt.Opt(Rt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Rt.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Rt.ListNode(r("loot_entry"))},"minecraft:set_count":{count:It.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:It.Range({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:Rt.Opt(Rt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Rt.Opt(l),lore:Rt.ListNode(r("text_component")),replace:Rt.Opt(Rt.BooleanNode())},"minecraft:set_name":{entity:Rt.Opt(l),name:Rt.Opt(r("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Rt.Opt(Rt.ListNode(Rt.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:It.Range()})))}},a={};return t.get("loot_function_type").forEach((t=>{a[t]=m(m({},e[t]),i)})),a})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Rt.Mod(Rt.ObjectNode({condition:s,[Rt.Switch]:[{push:"condition"}],[Rt.Case]:_(m({},It.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:Rt.MapNode(o({validator:"objective"}),It.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Rt.Mod(Rt.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:It.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Rt.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Tt={};Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.initPackMcmetaSchemas=void 0;const Dt=Be;Tt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Dt.Mod(Dt.ObjectNode({pack:Dt.Mod(Dt.ObjectNode({pack_format:Dt.Mod(Dt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Dt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Et={};Object.defineProperty(Et,"__esModule",{value:!0}),Et.initRecipeSchemas=void 0;const Ft=Be;Et.initRecipeSchemas=function(e,t){const r=Ft.Reference.bind(void 0,e),o=Ft.StringNode.bind(void 0,t);e.register("recipe",Ft.Mod(Ft.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Ft.Switch]:[{push:"type"}],[Ft.Case]:{"minecraft:crafting_shaped":{group:Ft.Opt(o({enum:"recipe_group",additional:!0})),pattern:Ft.ListNode(o()),key:Ft.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Ft.Opt(o()),ingredients:Ft.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Ft.NumberNode({integer:!0})},"minecraft:smithing":{group:Ft.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Ft.Mod(Ft.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Ft.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Ft.Mod(Ft.ObjectNode({item:Ft.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Ft.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Ft.Mod(Ft.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var $t={};Object.defineProperty($t,"__esModule",{value:!0}),$t.initTagsSchemas=void 0;const Ut=Be;$t.initTagsSchemas=function(e,t){const r=Ut.StringNode.bind(void 0,t),o=e=>Ut.Mod(Ut.ObjectNode({replace:Ut.Opt(Ut.BooleanNode()),values:Ut.ListNode(Ut.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ut.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ut.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.initTextComponentSchemas=void 0;const Zt=Be;qt.initTextComponentSchemas=function(e,t){const r=Zt.Reference.bind(void 0,e),o=Zt.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",Zt.Mod(Zt.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:Zt.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Zt.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:Zt.Opt(Zt.BooleanNode()),italic:Zt.Opt(Zt.BooleanNode()),underlined:Zt.Opt(Zt.BooleanNode()),strikethrough:Zt.Opt(Zt.BooleanNode()),obfuscated:Zt.Opt(Zt.BooleanNode()),insertion:Zt.Opt(o()),clickEvent:Zt.Opt(Zt.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Zt.Switch]:[{push:"action"}],[Zt.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Zt.Opt(Zt.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[Zt.Switch]:[{push:"action"}],[Zt.Case]:{show_text:{value:Zt.Opt(r("text_component"))},show_item:{value:Zt.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:Zt.Opt(Zt.ObjectNode({name:Zt.Opt(o()),type:Zt.Opt(o()),id:Zt.Opt(o())}))}}})),extra:Zt.Opt(r("text_component_list"))};e.register("text_component_object",Zt.Mod(Zt.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Zt.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Zt.ObjectNode(m({translate:o(),with:Zt.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Zt.ObjectNode(m({score:Zt.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:Zt.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Zt.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Zt.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Zt.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:Zt.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Zt.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Zt.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:Zt.Opt(Zt.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Zt.Mod(Zt.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.initSchemas=void 0;const Ht=kt,Wt=wt,Xt=Pt,Yt=Bt,Jt=Tt,Kt=xt,Gt=Et,Vt=$t,Qt=qt;Ot.initSchemas=function(e,t){Wt.initCommonSchemas(e,t),Kt.initPredicatesSchemas(e,t),Ht.initAdvancementSchemas(e,t),Xt.initConditionSchemas(e,t),Yt.initLootTableSchemas(e,t),Jt.initPackMcmetaSchemas(e,t),Gt.initRecipeSchemas(e,t),Vt.initTagsSchemas(e,t),Qt.initTextComponentSchemas(e,t)};var er=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),tr=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),rr=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&er(t,e,r);return tr(t,e),t};Object.defineProperty(yt,"__esModule",{value:!0});var or=yt.getSchemas=yt.getCollections=void 0;const ir=Be,ar=Nt,nr=Ot;var sr=yt.lootContext=rr(zt);var cr=yt.getCollections=function(){const e=new ir.CollectionRegistry;return ar.initCollections(e),e};or=yt.getSchemas=function(e){const t=new ir.SchemaRegistry;return nr.initSchemas(t,e),t};var lr=Object.freeze(Object.assign(Object.create(null),yt,{[Symbol.toStringTag]:"Module",get getSchemas(){return or},get getCollections(){return cr},lootContext:sr,default:yt})),dr={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.initCollections=void 0,mr.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 _r={},pr={},ur={};!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=Be;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(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.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,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o: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:i({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,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0}))},"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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"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"}}}})}}(ur),Object.defineProperty(pr,"__esModule",{value:!0}),pr.initAdvancementSchemas=void 0;const fr=Be,hr=ur;pr.initAdvancementSchemas=function(e,t){const r=fr.Reference.bind(void 0,e),o=fr.StringNode.bind(void 0,t),i=fr.ChoiceNode([{type:"object",node:fr.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:fr.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",fr.Mod(fr.ObjectNode({display:fr.Opt(fr.Mod(fr.ObjectNode({icon:fr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:fr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:fr.Opt(o()),frame:fr.Opt(o({enum:["task","challenge","goal"]})),show_toast:fr.Opt(fr.BooleanNode()),announce_to_chat:fr.Opt(fr.BooleanNode()),hidden:fr.Opt(fr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:fr.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:fr.MapNode(o(),r("advancement_criteria")),requirements:fr.Opt(fr.ListNode(fr.ListNode(o()))),rewards:fr.Opt(fr.ObjectNode({function:fr.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:fr.Opt(fr.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:fr.Opt(fr.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:fr.Opt(fr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",fr.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:fr.Opt(fr.ObjectNode({player:fr.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[fr.Switch]:["pop",{push:"trigger"}],[fr.Case]:{"minecraft:bee_nest_destroyed":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:fr.Opt(fr.NumberNode({integer:!0})),item:fr.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:fr.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:fr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:fr.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:fr.Opt(fr.ListNode(i))},"minecraft:construct_beacon":{level:fr.Opt(hr.Range())},"minecraft:consume_item":{item:fr.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:fr.Opt(fr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:fr.Opt(hr.Range()),item:fr.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:fr.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:fr.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:fr.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:fr.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:fr.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:fr.Opt(fr.ObjectNode({empty:fr.Opt(hr.Range()),occupied:fr.Opt(hr.Range()),full:fr.Opt(hr.Range())})),items:fr.Opt(fr.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:fr.Opt(hr.Range()),durability:fr.Opt(hr.Range()),item:fr.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:fr.Opt(r("item_predicate")),location:fr.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:fr.Opt(hr.Range()),victims:fr.Opt(fr.ListNode(i))},"minecraft:levitation":{distance:fr.Opt(hr.Range()),duration:fr.Opt(hr.Range())},"minecraft:location":{location:fr.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:fr.Opt(hr.Range()),entered:fr.Opt(r("location_predicate")),exited:fr.Opt(r("location_predicate"))},"minecraft:placed_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:fr.Opt(r("item_predicate")),location:fr.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:fr.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:fr.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:fr.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:fr.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:fr.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:fr.Opt(hr.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:fr.Opt(r("entity_predicate")),item:fr.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:fr.Opt(hr.Range())},"minecraft:used_totem":{item:fr.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:fr.Opt(r("entity_predicate")),item:fr.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var br={};Object.defineProperty(br,"__esModule",{value:!0}),br.initConditionSchemas=void 0;const gr=Be,vr=ur;br.initConditionSchemas=function(e,t){const r=gr.Reference.bind(void 0,e),o=gr.StringNode.bind(void 0,t);e.register("predicate",gr.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",gr.Mod(gr.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[gr.Switch]:[{push:"condition"}],[gr.Case]:vr.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var yr={};Object.defineProperty(yr,"__esModule",{value:!0}),yr.initDimensionSchemas=void 0;const Nr=Be,Or=ur;yr.initDimensionSchemas=function(e,t){const r=Nr.Reference.bind(void 0,e),o=Nr.StringNode.bind(void 0,t),i=e=>Nr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Nr.Mod(Nr.ObjectNode({type:Or.DimensionTypePresets(r("dimension_type")),generator:Nr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Nr.Switch]:[{push:"type"}],[Nr.Case]:{"minecraft:noise":{seed:Nr.NumberNode({integer:!0}),settings:Or.NoiseSettingsPresets(r("noise_settings")),biome_source:Nr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Nr.Switch]:[{push:"type"}],[Nr.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Nr.NumberNode({integer:!0}),preset:Nr.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(Nr.Mod(Nr.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Nr.Opt(Nr.NumberNode({integer:!0,min:0,max:62})),biomes:Nr.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Nr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Nr.NumberNode({integer:!0}),large_biomes:Nr.Opt(Nr.BooleanNode()),legacy_biome_init_layer:Nr.Opt(Nr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Nr.ObjectNode({biome:Nr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Nr.Opt(Nr.BooleanNode()),features:Nr.Opt(Nr.BooleanNode()),layers:Nr.ListNode(r("generator_layer")),structures:r("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",Nr.Mod(Nr.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Nr.ObjectNode({altitude:Nr.NumberNode(),temperature:Nr.NumberNode(),humidity:Nr.NumberNode(),weirdness:Nr.NumberNode(),offset:Nr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Nr.Mod(Nr.ObjectNode({firstOctave:Nr.NumberNode({integer:!0}),amplitudes:Nr.ListNode(Nr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initDimensionTypeSchemas=void 0;const wr=Be,xr=ur;kr.initDimensionTypeSchemas=function(e,t){const r=wr.StringNode.bind(void 0,t);e.register("dimension_type",wr.Mod(wr.ObjectNode({name:wr.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:wr.BooleanNode(),natural:wr.BooleanNode(),piglin_safe:wr.BooleanNode(),respawn_anchor_works:wr.BooleanNode(),bed_works:wr.BooleanNode(),has_raids:wr.BooleanNode(),has_skylight:wr.BooleanNode(),has_ceiling:wr.BooleanNode(),coordinate_scale:wr.NumberNode({min:1e-5,max:3e7}),ambient_light:wr.NumberNode(),fixed_time:wr.Opt(wr.NumberNode({integer:!0})),logical_height:wr.NumberNode({integer:!0,min:0,max:256}),effects:wr.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>xr.DefaultDimensionType}))};var jr={},Sr={};Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.LootFunctions=Sr.LootConditions=Sr.LootCopySources=Sr.LootEntitySources=Sr.LootTableTypes=void 0,Sr.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]}]]),Sr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Sr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Sr.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",[]]]),Sr.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(jr,"__esModule",{value:!0}),jr.initLootTableSchemas=void 0;const Mr=Be,Pr=Sr,Lr=ur;jr.initLootTableSchemas=function(e,t){const r=Mr.Reference.bind(void 0,e),o=Mr.StringNode.bind(void 0,t),i={conditions:Mr.Opt(Mr.ListNode(r("loot_condition")))},a=m({functions:Mr.Opt(Mr.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of Pr.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Mr.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Mr.SwitchNode(i)}const s=n(Pr.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(Pr.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(Pr.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(Pr.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Mr.Mod(Mr.ObjectNode({type:Mr.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Mr.Opt(Mr.ListNode(Mr.Mod(Mr.ObjectNode(m({rolls:Lr.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Mr.Opt(Lr.Range({integer:!0})),entries:Mr.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Mr.Opt(Mr.ListNode(r("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",Mr.Mod(Mr.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Mr.Opt(Mr.Mod(Mr.NumberNode({integer:!0,min:1}),p)),quality:Mr.Opt(Mr.Mod(Mr.NumberNode({integer:!0}),p)),[Mr.Switch]:[{push:"type"}],[Mr.Case]:{"minecraft:alternatives":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Mr.Opt(Mr.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Mr.Mod(Mr.ObjectNode({function:c,[Mr.Switch]:[{push:"function"}],[Mr.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Mr.Mod(Mr.ObjectNode({bonusMultiplier:Mr.Mod(Mr.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Mr.Mod(Mr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Mr.Mod(Mr.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:d},"minecraft:copy_nbt":{source:d,ops:Mr.ListNode(Mr.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:Mr.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Mr.Opt(Mr.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Lr.Range({allowBinomial:!0}),treasure:Mr.Opt(Mr.BooleanNode())},"minecraft:exploration_map":{destination:Mr.Opt(o({enum:"map_feature"})),decoration:Mr.Opt(o({enum:"map_decoration"})),zoom:Mr.Opt(Mr.NumberNode({integer:!0})),search_radius:Mr.Opt(Mr.NumberNode({integer:!0})),skip_existing_chunks:Mr.Opt(Mr.BooleanNode())},"minecraft:fill_player_head":{entity:l},"minecraft:limit_count":{limit:Lr.Range({bounds:!0})},"minecraft:looting_enchant":{count:Lr.Range({bounds:!0}),limit:Mr.Opt(Mr.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Mr.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Mr.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Lr.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Lr.Range({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:Mr.Opt(Mr.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Mr.Opt(l),lore:Mr.ListNode(r("text_component")),replace:Mr.Opt(Mr.BooleanNode())},"minecraft:set_name":{entity:Mr.Opt(l),name:Mr.Opt(r("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Mr.Opt(Mr.ListNode(Mr.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:Lr.Range()})))}},a={};return t.get("loot_function_type").forEach((t=>{a[t]=m(m({},e[t]),i)})),a})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Mr.Mod(Mr.ObjectNode({condition:s,[Mr.Switch]:[{push:"condition"}],[Mr.Case]:_(m({},Lr.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:Mr.MapNode(o({validator:"objective"}),Lr.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Mr.Mod(Mr.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:Lr.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Mr.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initPackMcmetaSchemas=void 0;const Br=Be;Cr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Br.Mod(Br.ObjectNode({pack:Br.Mod(Br.ObjectNode({pack_format:Br.Mod(Br.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Br.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.initPredicatesSchemas=void 0;const Rr=Be,Ar=ur;zr.initPredicatesSchemas=function(e,t){const r=Rr.Reference.bind(void 0,e),o=Rr.StringNode.bind(void 0,t),i=Rr.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Rr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Rr.ObjectNode({min:Rr.Opt(Rr.NumberNode({integer:!0})),max:Rr.Opt(Rr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Rr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Rr.ObjectNode({item:Rr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:Rr.Opt(Ar.Range()),durability:Rr.Opt(Ar.Range()),potion:Rr.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Rr.Opt(Rr.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Rr.ObjectNode({enchantment:Rr.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:Rr.Opt(Ar.Range())},{context:"enchantment"})),e.register("block_predicate",Rr.ObjectNode({block:Rr.Opt(o({validator:"resource",params:{pool:"block"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Rr.Opt(Rr.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Rr.ObjectNode({fluid:Rr.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:Rr.Opt(Rr.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",Rr.ObjectNode({position:Rr.Opt(Rr.ObjectNode({x:Rr.Opt(Ar.Range()),y:Rr.Opt(Ar.Range()),z:Rr.Opt(Ar.Range())})),biome:Rr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Rr.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Rr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:Rr.Opt(Rr.ObjectNode({light:Rr.Opt(Ar.Range({integer:!0,min:0,max:15}))})),smokey:Rr.Opt(Rr.BooleanNode()),block:Rr.Opt(r("block_predicate")),fluid:Rr.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Rr.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:Ar.Range(),[Rr.Switch]:[{push:"type"}],[Rr.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Rr.ObjectNode({gamemode:Rr.Opt(o({enum:"gamemode"})),level:Rr.Opt(Ar.Range()),advancements:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),Rr.ChoiceNode([{type:"boolean",node:Rr.BooleanNode(),change:e=>!0},{type:"object",node:Rr.MapNode(o(),Rr.BooleanNode())}]))),recipes:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),Rr.BooleanNode())),stats:Rr.Opt(Rr.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Rr.ObjectNode({amplifier:Rr.Opt(Ar.Range()),duration:Rr.Opt(Ar.Range()),ambient:Rr.Opt(Rr.BooleanNode()),visible:Rr.Opt(Rr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Rr.ObjectNode({x:Rr.Opt(Ar.Range()),y:Rr.Opt(Ar.Range()),z:Rr.Opt(Ar.Range()),absolute:Rr.Opt(Ar.Range()),horizontal:Rr.Opt(Ar.Range())},{context:"distance"})),e.register("entity_predicate",Rr.ObjectNode({type:Rr.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Rr.Opt(o({validator:"team"})),location:Rr.Opt(r("location_predicate")),distance:Rr.Opt(r("distance_predicate")),flags:Rr.Opt(Rr.ObjectNode({is_on_fire:Rr.Opt(Rr.BooleanNode()),is_sneaking:Rr.Opt(Rr.BooleanNode()),is_sprinting:Rr.Opt(Rr.BooleanNode()),is_swimming:Rr.Opt(Rr.BooleanNode()),is_baby:Rr.Opt(Rr.BooleanNode())})),equipment:Rr.Opt(Rr.MapNode(o({enum:"slot"}),r("item_predicate"))),vehicle:Rr.Opt(r("entity_predicate")),targeted_entity:Rr.Opt(r("entity_predicate")),player:Rr.Opt(r("player_predicate")),fishing_hook:Rr.Opt(Rr.ObjectNode({in_open_water:Rr.Opt(Rr.BooleanNode())})),effects:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Rr.ObjectNode({is_explosion:Rr.Opt(Rr.BooleanNode()),is_fire:Rr.Opt(Rr.BooleanNode()),is_magic:Rr.Opt(Rr.BooleanNode()),is_projectile:Rr.Opt(Rr.BooleanNode()),is_lightning:Rr.Opt(Rr.BooleanNode()),bypasses_armor:Rr.Opt(Rr.BooleanNode()),bypasses_invulnerability:Rr.Opt(Rr.BooleanNode()),bypasses_magic:Rr.Opt(Rr.BooleanNode()),source_entity:Rr.Opt(r("entity_predicate")),direct_entity:Rr.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Rr.ObjectNode({dealt:Rr.Opt(Ar.Range()),taken:Rr.Opt(Ar.Range()),blocked:Rr.Opt(Rr.BooleanNode()),source_entity:Rr.Opt(r("entity_predicate")),type:Rr.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Ir={};Object.defineProperty(Ir,"__esModule",{value:!0}),Ir.initRecipeSchemas=void 0;const Tr=Be;Ir.initRecipeSchemas=function(e,t){const r=Tr.Reference.bind(void 0,e),o=Tr.StringNode.bind(void 0,t);e.register("recipe",Tr.Mod(Tr.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:crafting_shaped":{group:Tr.Opt(o({enum:"recipe_group",additional:!0})),pattern:Tr.ListNode(o()),key:Tr.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Tr.Opt(o()),ingredients:Tr.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Tr.NumberNode({integer:!0})},"minecraft:smithing":{group:Tr.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Tr.Mod(Tr.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Tr.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Tr.Mod(Tr.ObjectNode({item:Tr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Tr.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Tr.Mod(Tr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.initTagsSchemas=void 0;const Er=Be;Dr.initTagsSchemas=function(e,t){const r=Er.StringNode.bind(void 0,t),o=e=>Er.Mod(Er.ObjectNode({replace:Er.Opt(Er.BooleanNode()),values:Er.ListNode(Er.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Er.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Er.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var Fr={};Object.defineProperty(Fr,"__esModule",{value:!0}),Fr.initTextComponentSchemas=void 0;const $r=Be;Fr.initTextComponentSchemas=function(e,t){const r=$r.Reference.bind(void 0,e),o=$r.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",$r.Mod($r.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:$r.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:$r.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:$r.Opt(o()),font:$r.Opt(o()),bold:$r.Opt($r.BooleanNode()),italic:$r.Opt($r.BooleanNode()),underlined:$r.Opt($r.BooleanNode()),strikethrough:$r.Opt($r.BooleanNode()),obfuscated:$r.Opt($r.BooleanNode()),insertion:$r.Opt(o()),clickEvent:$r.Opt($r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[$r.Switch]:[{push:"action"}],[$r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:$r.Opt($r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[$r.Switch]:[{push:"action"}],[$r.Case]:{show_text:{value:$r.Opt(r("text_component")),contents:$r.Opt(r("text_component"))},show_item:{value:$r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:$r.Opt($r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:$r.Opt($r.NumberNode({integer:!0})),tag:$r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:$r.Opt($r.ObjectNode({name:$r.Opt(o()),type:$r.Opt(o()),id:$r.Opt(o())})),contents:$r.Opt($r.Mod($r.ObjectNode({name:$r.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:$r.Opt(r("text_component_list"))};e.register("text_component_object",$r.Mod($r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:$r.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:$r.ObjectNode(m({translate:o(),with:$r.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:$r.ObjectNode(m({score:$r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:$r.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:$r.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:$r.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:$r.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:$r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:$r.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:$r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:$r.Opt($r.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",$r.Mod($r.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ur={},qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.initBiomeSchemas=void 0;const Zr=Be;qr.initBiomeSchemas=function(e,t){const r=Zr.StringNode.bind(void 0,t);e.register("biome",Zr.Mod(Zr.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Zr.NumberNode(),scale:Zr.NumberNode(),temperature:Zr.NumberNode(),downfall:Zr.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Zr.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Zr.Opt(Zr.BooleanNode()),creature_spawn_probability:Zr.Opt(Zr.NumberNode({min:0,max:1})),effects:Zr.ObjectNode({sky_color:Zr.NumberNode({color:!0}),fog_color:Zr.NumberNode({color:!0}),water_color:Zr.NumberNode({color:!0}),water_fog_color:Zr.NumberNode({color:!0}),grass_color:Zr.Opt(Zr.NumberNode({color:!0})),foliage_color:Zr.Opt(Zr.NumberNode({color:!0})),grass_color_modifier:Zr.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Zr.Opt(r()),mood_sound:Zr.Opt(Zr.ObjectNode({sound:r(),tick_delay:Zr.NumberNode({integer:!0}),block_search_extent:Zr.NumberNode({integer:!0}),offset:Zr.NumberNode()})),additions_sound:Zr.Opt(Zr.ObjectNode({sound:r(),tick_chance:Zr.NumberNode({min:0,max:1})})),music:Zr.Opt(Zr.ObjectNode({sound:r(),min_delay:Zr.NumberNode({integer:!0,min:0}),max_delay:Zr.NumberNode({integer:!0,min:0}),replace_current_music:Zr.BooleanNode()})),particle:Zr.Opt(Zr.ObjectNode({options:Zr.ObjectNode({type:r()}),probability:Zr.NumberNode({min:0,max:1})}))}),starts:Zr.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Zr.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),Zr.Mod(Zr.ListNode(Zr.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Zr.NumberNode({integer:!0}),minCount:Zr.NumberNode({integer:!0}),maxCount:Zr.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Zr.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Zr.Mod(Zr.ObjectNode({energy_budget:Zr.NumberNode(),charge:Zr.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Zr.MapNode(r({enum:["air","liquid"]}),Zr.Mod(Zr.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Zr.ListNode(Zr.Mod(Zr.ListNode(r({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 Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.initCarverSchemas=void 0;const Wr=Be;Hr.initCarverSchemas=function(e,t){const r=Wr.StringNode.bind(void 0,t);e.register("configured_carver",Wr.Mod(Wr.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:Wr.ObjectNode({probability:Wr.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Xr={};Object.defineProperty(Xr,"__esModule",{value:!0}),Xr.initDecoratorSchemas=void 0;const Yr=Be,Jr=ur;Xr.initDecoratorSchemas=function(e,t){const r=Yr.Reference.bind(void 0,e),o=Yr.StringNode.bind(void 0,t),i={maximum:Yr.NumberNode({integer:!0}),bottom_offset:Yr.NumberNode({integer:!0}),top_offset:Yr.NumberNode({integer:!0})},a={chance:Yr.NumberNode({integer:!0,min:0})},n={count:Jr.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",Yr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Yr.ObjectNode({[Yr.Switch]:["pop",{push:"type"}],[Yr.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"}),probability:Yr.NumberNode({min:0,max:1})},"minecraft:chance":a,"minecraft:count":n,"minecraft:count_extra":{count:Yr.NumberNode({integer:!0}),extra_count:Yr.NumberNode({integer:!0}),extra_chance:Yr.NumberNode({min:0,max:1})},"minecraft:count_multilayer":n,"minecraft:count_noise":{noise_level:Yr.NumberNode(),below_noise:Yr.NumberNode({integer:!0}),above_noise:Yr.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Yr.NumberNode({integer:!0}),noise_factor:Yr.NumberNode(),noise_offset:Yr.Opt(Yr.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:Yr.NumberNode({integer:!0}),spread:Yr.NumberNode({integer:!0})},"minecraft:fire":n,"minecraft:glowstone":n,"minecraft:lava_lake":a,"minecraft:range":i,"minecraft:range_biased":i,"minecraft:range_very_biased":i,"minecraft:water_lake":a}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Kr={},Gr={};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.initProcessorListSchemas=void 0;const Vr=Be;Gr.initProcessorListSchemas=function(e,t){const r=Vr.Reference.bind(void 0,e),o=Vr.StringNode.bind(void 0,t);e.register("processor_list",Vr.Mod(Vr.ObjectNode({processors:Vr.ListNode(r("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",Vr.Mod(Vr.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Vr.Switch]:[{push:"processor_type"}],[Vr.Case]:{"minecraft:block_age":{mossiness:Vr.NumberNode()},"minecraft:block_ignore":{blocks:Vr.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Vr.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Vr.NumberNode({integer:!0})},"minecraft:rule":{rules:Vr.ListNode(r("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",Vr.Mod(Vr.ObjectNode({position_predicate:Vr.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Vr.Opt(o({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 i={min_dist:Vr.NumberNode({min:0,max:255,integer:!0}),max_dist:Vr.NumberNode({min:0,max:255,integer:!0}),min_chance:Vr.NumberNode({min:0,max:1}),max_chance:Vr.NumberNode({min:0,max:1})};e.register("pos_rule_test",Vr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Vr.Switch]:[{push:"predicate_type"}],[Vr.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Vr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Vr.Switch]:[{push:"predicate_type"}],[Vr.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Vr.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Vr.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initFeatureSchemas=void 0;const Qr=Be,eo=ur;Kr.initFeatureSchemas=function(e,t){const r=Qr.Reference.bind(void 0,e),o=Qr.StringNode.bind(void 0,t),i={can_replace:Qr.BooleanNode(),project:Qr.BooleanNode(),need_water:Qr.BooleanNode(),xspread:Qr.NumberNode({integer:!0}),yspread:Qr.NumberNode({integer:!0}),zspread:Qr.NumberNode({integer:!0}),tries:Qr.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Qr.ListNode(r("block_state")),blacklist:Qr.ListNode(r("block_state"))},a={state:r("block_state"),radius:eo.UniformInt({min:0,max:4,maxSpread:4}),half_height:Qr.NumberNode({integer:!0,min:0,max:4}),targets:Qr.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Qr.Opt(Qr.NumberNode({integer:!0}))},s={state:r("block_state"),size:Qr.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:eo.UniformInt({min:-10,max:128,maxSpread:128})},l=Qr.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Qr.ObjectNode({[Qr.Switch]:["pop",{push:"type"}],[Qr.Case]:{"minecraft:bamboo":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:eo.UniformInt({min:0,max:2,maxSpread:1}),height:eo.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:eo.UniformInt({min:0,max:8,maxSpread:8}),rim_size:eo.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":a,"minecraft:emerald_ore":{state:r("block_state"),target:r("block_state")},"minecraft:end_gateway":{exact:Qr.BooleanNode(),exit:Qr.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Qr.Opt(Qr.BooleanNode()),crystal_beam_target:Qr.Opt(r("block_pos")),spikes:Qr.ListNode(Qr.ObjectNode({centerX:Qr.Opt(Qr.NumberNode({integer:!0})),centerZ:Qr.Opt(Qr.NumberNode({integer:!0})),radius:Qr.Opt(Qr.NumberNode({integer:!0})),height:Qr.Opt(Qr.NumberNode({integer:!0})),guarded:Qr.Opt(Qr.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Qr.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Qr.Opt(Qr.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:eo.UniformInt()},"minecraft:no_bonemeal_flower":i,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Qr.ListNode(Qr.ObjectNode({chance:Qr.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:Qr.ListNode(r("block_state")),place_in:Qr.ListNode(r("block_state")),place_under:Qr.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:Qr.ListNode(l)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Qr.NumberNode({integer:!0}),hole_count:Qr.NumberNode({integer:!0}),requires_block_below:Qr.BooleanNode(),valid_blocks:Qr.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:Qr.NumberNode({integer:!0}),ignore_vines:Qr.BooleanNode(),heightmap:o({enum:"heightmap_type"}),minimum_size:r("feature_size"),trunk_provider:r("block_state_provider"),leaves_provider:r("block_state_provider"),trunk_placer:Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Qr.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Qr.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Qr.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:eo.UniformInt({min:0,max:8,maxSpread:8}),offset:eo.UniformInt({min:0,max:8,maxSpread:8}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:blob_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:eo.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:eo.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:eo.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Qr.ListNode(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Qr.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",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Qr.Opt(Qr.NumberNode({min:0,max:80})),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:two_layers_feature_size":{limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:81})),lower_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),upper_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:80})),upper_limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:80})),lower_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),middle_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),upper_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Qr.ListNode(Qr.Mod(Qr.ObjectNode({weight:Qr.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:column_placer":{min_size:Qr.NumberNode({integer:!0}),extra_size:Qr.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var to={};Object.defineProperty(to,"__esModule",{value:!0}),to.initNoiseSettingsSchemas=void 0;const ro=Be,oo=ur;to.initNoiseSettingsSchemas=function(e,t){const r=ro.Reference.bind(void 0,e),o=ro.StringNode.bind(void 0,t);e.register("noise_settings",ro.Mod(ro.ObjectNode({name:ro.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:ro.NumberNode({integer:!0}),bedrock_floor_position:ro.NumberNode({integer:!0}),sea_level:ro.NumberNode({integer:!0}),disable_mob_generation:ro.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:ro.ObjectNode({height:ro.NumberNode({integer:!0}),density_factor:ro.NumberNode(),density_offset:ro.NumberNode(),size_horizontal:ro.NumberNode({integer:!0}),size_vertical:ro.NumberNode({integer:!0}),simplex_surface_noise:ro.BooleanNode(),random_density_offset:ro.Opt(ro.BooleanNode()),island_noise_override:ro.Opt(ro.BooleanNode()),amplified:ro.Opt(ro.BooleanNode()),sampling:ro.ObjectNode({xz_scale:ro.NumberNode(),y_scale:ro.NumberNode(),xz_factor:ro.NumberNode(),y_factor:ro.NumberNode()}),bottom_slide:ro.ObjectNode({target:ro.NumberNode({integer:!0}),size:ro.NumberNode({integer:!0}),offset:ro.NumberNode({integer:!0})}),top_slide:ro.ObjectNode({target:ro.NumberNode({integer:!0}),size:ro.NumberNode({integer:!0}),offset:ro.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>oo.DefaultNoiseSettings})),e.register("generator_structures",ro.ObjectNode({stronghold:ro.Opt(ro.ObjectNode({distance:ro.NumberNode({integer:!0,min:0,max:1023}),spread:ro.NumberNode({integer:!0,min:0,max:1023}),count:ro.NumberNode({integer:!0,min:1,max:4095})})),structures:ro.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ro.Mod(ro.ObjectNode({spacing:ro.NumberNode({integer:!0,min:0,max:4096}),separation:ro.Mod(ro.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:ro.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ro.Mod(ro.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:ro.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initStructureFeatureSchemas=void 0;const ao=Be;io.initStructureFeatureSchemas=function(e,t){const r=ao.StringNode.bind(void 0,t),o={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ao.NumberNode({integer:!0})};e.register("configured_structure_feature",ao.Mod(ao.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ao.ObjectNode({[ao.Switch]:["pop",{push:"type"}],[ao.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:ao.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ao.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ao.NumberNode({min:0,max:1}),cluster_probability:ao.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ao.Opt(ao.BooleanNode())},"minecraft:village":o}},{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 so=Be;no.initSurfaceBuilderSchemas=function(e,t){const r=so.StringNode.bind(void 0,t),o=so.Reference.bind(void 0,e);e.register("configured_surface_builder",so.Mod(so.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:so.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 co={};Object.defineProperty(co,"__esModule",{value:!0}),co.initTemplatePoolSchemas=void 0;const lo=Be;co.initTemplatePoolSchemas=function(e,t){const r=lo.Reference.bind(void 0,e),o=lo.StringNode.bind(void 0,t),i=lo.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",lo.Mod(lo.ObjectNode({name:o(),fallback:o(),elements:lo.ListNode(r("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",lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",lo.Mod(lo.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[lo.Switch]:[{push:"element_type"}],[lo.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i},"minecraft:list_pool_element":{elements:lo.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ur,"__esModule",{value:!0}),Ur.initWorldgenSchemas=void 0;const mo=qr,_o=Hr,po=Xr,uo=Kr,fo=to,ho=Gr,bo=io,go=no,vo=co;Ur.initWorldgenSchemas=function(e,t){mo.initBiomeSchemas(e,t),_o.initCarverSchemas(e,t),po.initDecoratorSchemas(e,t),uo.initFeatureSchemas(e,t),fo.initNoiseSettingsSchemas(e,t),ho.initProcessorListSchemas(e,t),bo.initStructureFeatureSchemas(e,t),go.initSurfaceBuilderSchemas(e,t),vo.initTemplatePoolSchemas(e,t)};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initWorldSettingsSchemas=void 0;const No=Be;yo.initWorldSettingsSchemas=function(e,t){const r=No.Reference.bind(void 0,e),o=No.StringNode.bind(void 0,t);e.register("world_settings",No.Mod(No.ObjectNode({generate_features:No.BooleanNode(),bonus_chest:No.BooleanNode(),seed:No.NumberNode({integer:!0}),dimensions:No.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(_r,"__esModule",{value:!0}),_r.initSchemas=void 0;const Oo=pr,ko=ur,wo=br,xo=yr,jo=kr,So=jr,Mo=Cr,Po=zr,Lo=Ir,Co=Dr,Bo=Fr,zo=Ur,Ro=yo;_r.initSchemas=function(e,t){ko.initCommonSchemas(e,t),Oo.initAdvancementSchemas(e,t),wo.initConditionSchemas(e,t),jo.initDimensionTypeSchemas(e,t),xo.initDimensionSchemas(e,t),So.initLootTableSchemas(e,t),Mo.initPackMcmetaSchemas(e,t),Po.initPredicatesSchemas(e,t),Lo.initRecipeSchemas(e,t),Co.initTagsSchemas(e,t),Bo.initTextComponentSchemas(e,t),zo.initWorldgenSchemas(e,t),Ro.initWorldSettingsSchemas(e,t)};var Ao=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Io=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),To=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&Ao(t,e,r);return Io(t,e),t};Object.defineProperty(dr,"__esModule",{value:!0});var Do=dr.getSchemas=dr.getCollections=void 0;const Eo=Be,Fo=mr,$o=_r;var Uo=dr.lootContext=To(Sr);var qo=dr.getCollections=function(){const e=new Eo.CollectionRegistry;return Fo.initCollections(e),e};Do=dr.getSchemas=function(e){const t=new Eo.SchemaRegistry;return $o.initSchemas(t,e),t};var Zo=Object.freeze(Object.assign(Object.create(null),dr,{[Symbol.toStringTag]:"Module",get getSchemas(){return Do},get getCollections(){return qo},lootContext:Uo,default:dr})),Ho={},Wo={};Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.initCollections=void 0,Wo.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 Xo={},Yo={};Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.initAdvancementSchemas=void 0;const Jo=Be;Yo.initAdvancementSchemas=function(e,t){const r=Jo.Reference.bind(void 0,e),o=Jo.StringNode.bind(void 0,t),i=Jo.ChoiceNode([{type:"object",node:Jo.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Jo.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Jo.Mod(Jo.ObjectNode({display:Jo.Opt(Jo.Mod(Jo.ObjectNode({icon:Jo.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:Jo.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Jo.Opt(o()),frame:Jo.Opt(o({enum:["task","challenge","goal"]})),show_toast:Jo.Opt(Jo.BooleanNode()),announce_to_chat:Jo.Opt(Jo.BooleanNode()),hidden:Jo.Opt(Jo.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Jo.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:Jo.MapNode(o(),r("advancement_criteria")),requirements:Jo.Opt(Jo.ListNode(Jo.ListNode(o()))),rewards:Jo.Opt(Jo.ObjectNode({function:Jo.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:Jo.Opt(Jo.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Jo.Opt(Jo.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:Jo.Opt(Jo.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Jo.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Jo.Opt(Jo.ObjectNode({player:Jo.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Jo.Switch]:["pop",{push:"trigger"}],[Jo.Case]:{"minecraft:bee_nest_destroyed":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:Jo.Opt(Jo.NumberNode({integer:!0})),item:Jo.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Jo.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Jo.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:Jo.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Jo.Opt(Jo.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Jo.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Jo.Opt(Jo.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),Jo.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Jo.Opt(i)},"minecraft:enter_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Jo.Opt(Jo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Jo.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Jo.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Jo.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Jo.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Jo.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Jo.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Jo.Opt(Jo.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Jo.Opt(Jo.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Jo.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Jo.Opt(r("item_predicate")),location:Jo.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Jo.Opt(Jo.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Jo.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:Jo.Opt(r("location_predicate")),exited:Jo.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Jo.Opt(Jo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Jo.Opt(r("item_predicate")),location:Jo.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Jo.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Jo.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Jo.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Jo.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Jo.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:Jo.Opt(r("entity_predicate")),item:Jo.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:Jo.Opt(r("item_predicate"))},"minecraft:using_item":{item:Jo.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Jo.Opt(r("entity_predicate")),item:Jo.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Ko={};!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=Be;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(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const n=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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})}]));r.register("int_bounds",n(!0)),r.register("float_bounds",n()),r.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 s=(e,r,o,a,n,s,c)=>{let l={};n&&Object.keys(c[n]).forEach((e=>{l[e]=t.Mod(c[n][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(m({type:t.Mod(t.Opt(i({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:c},l),{context:s,disableSwitchContext:!0}),_=[{type:r,node:c[a][o]}];return n&&_.push({type:"object",priority:-1,node:d}),Object.keys(c).forEach((e=>{_.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(_,{context:s,choiceContext:`${s}.type`})};r.register("number_provider",s("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:i({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:i({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(i({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:i({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(i({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>s("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()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(m({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e)),source:a("int_provider")})}}),r.register("int_provider",e.IntProvider()),r.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 r,o,i;return{[e]:null!==(i=null!==(o=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",s("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.ConditionCases=(e=i({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{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(i({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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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,r=i({enum:"copy_source"}),n=i({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:o.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:r},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.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:t.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(i({enum:"map_feature"})),decoration:t.Opt(i({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:i({enum:"banner_pattern"}),color:i({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{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(i({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:i({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:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},c={};return o.get("loot_function_type").forEach((t=>{c[t]=m(m({},s[t]),e)})),c},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"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"}}}})}}(Ko);var Go={};Object.defineProperty(Go,"__esModule",{value:!0}),Go.initConditionSchemas=void 0;const Vo=Be,Qo=Ko;Go.initConditionSchemas=function(e,t){const r=Vo.Reference.bind(void 0,e),o=Vo.StringNode.bind(void 0,t);e.register("predicate",Vo.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Vo.Mod(Vo.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Vo.Switch]:[{push:"condition"}],[Vo.Case]:Qo.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.initDimensionSchemas=void 0;const ti=Be,ri=Ko;ei.initDimensionSchemas=function(e,t){const r=ti.Reference.bind(void 0,e),o=ti.StringNode.bind(void 0,t),i=e=>ti.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",ti.Mod(ti.ObjectNode({type:ri.DimensionTypePresets(r("dimension_type")),generator:ti.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[ti.Switch]:[{push:"type"}],[ti.Case]:{"minecraft:noise":{seed:ti.NumberNode({integer:!0}),settings:ri.NoiseSettingsPresets(r("noise_settings")),biome_source:ti.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[ti.Switch]:[{push:"type"}],[ti.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:ti.NumberNode({integer:!0}),preset:ti.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(ti.Mod(ti.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:ti.Opt(ti.NumberNode({integer:!0,min:0,max:62})),biomes:ti.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:ti.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:ti.NumberNode({integer:!0}),large_biomes:ti.Opt(ti.BooleanNode()),legacy_biome_init_layer:ti.Opt(ti.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:ti.ObjectNode({biome:ti.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:ti.Opt(ti.BooleanNode()),features:ti.Opt(ti.BooleanNode()),layers:ti.ListNode(r("generator_layer")),structures:r("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",ti.Mod(ti.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:ti.ObjectNode({altitude:ti.NumberNode(),temperature:ti.NumberNode(),humidity:ti.NumberNode(),weirdness:ti.NumberNode(),offset:ti.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",ti.Mod(ti.ObjectNode({firstOctave:ti.NumberNode({integer:!0}),amplitudes:ti.ListNode(ti.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initDimensionTypeSchemas=void 0;const ii=Be,ai=Ko;oi.initDimensionTypeSchemas=function(e,t){const r=ii.StringNode.bind(void 0,t);e.register("dimension_type",ii.Mod(ii.ObjectNode({name:ii.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:ii.BooleanNode(),natural:ii.BooleanNode(),piglin_safe:ii.BooleanNode(),respawn_anchor_works:ii.BooleanNode(),bed_works:ii.BooleanNode(),has_raids:ii.BooleanNode(),has_skylight:ii.BooleanNode(),has_ceiling:ii.BooleanNode(),coordinate_scale:ii.NumberNode({min:1e-5,max:3e7}),ambient_light:ii.NumberNode(),fixed_time:ii.Opt(ii.NumberNode({integer:!0})),logical_height:ii.NumberNode({integer:!0,min:0,max:4096}),effects:ii.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:ii.NumberNode({integer:!0,min:-2048,max:2047}),height:ii.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>ai.DefaultDimensionType,validate:(t,r,o,i)=>((null==(r=e.validate(t,r,o,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initItemModifierSchemas=void 0;const si=Be,ci=Ko;ni.initItemModifierSchemas=function(e,t){const r=si.Reference.bind(void 0,e),o=si.StringNode.bind(void 0,t);e.register("item_modifier",si.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:si.Opt(si.ListNode(r("condition")))};e.register("function",si.Mod(si.ObjectNode({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[si.Switch]:[{push:"function"}],[si.Case]:ci.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var li={},di={};Object.defineProperty(di,"__esModule",{value:!0}),di.LootFunctions=di.LootConditions=di.LootCopySources=di.LootEntitySources=di.LootTableTypes=void 0,di.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]}]]),di.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),di.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),di.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",[]]]),di.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(li,"__esModule",{value:!0}),li.initLootTableSchemas=void 0;const mi=Be,_i=di,pi=Ko;li.initLootTableSchemas=function(e,t){const r=mi.Reference.bind(void 0,e),o=mi.StringNode.bind(void 0,t),i={conditions:mi.Opt(mi.ListNode(r("loot_condition")))},a=m({functions:mi.Opt(mi.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of _i.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new mi.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),mi.SwitchNode(i)}const s=n(_i.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(_i.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(_i.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(_i.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",mi.Mod(mi.ObjectNode({type:mi.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:mi.Opt(mi.ListNode(mi.Mod(mi.ObjectNode(m({rolls:r("number_provider"),bonus_rolls:mi.Opt(r("number_provider")),entries:mi.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:mi.Opt(mi.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={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",mi.Mod(mi.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:mi.Opt(mi.Mod(mi.NumberNode({integer:!0,min:1}),_)),quality:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),_)),[mi.Switch]:[{push:"type"}],[mi.Case]:{"minecraft:alternatives":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:mi.Opt(mi.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",mi.Mod(mi.ObjectNode({function:c,[mi.Switch]:[{push:"function"}],[mi.Case]:pi.FunctionCases(i,d,l)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",mi.Mod(mi.ObjectNode({condition:s,[mi.Switch]:[{push:"condition"}],[mi.Case]:pi.ConditionCases(l)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",mi.Mod(mi.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:r("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:mi.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ui={};Object.defineProperty(ui,"__esModule",{value:!0}),ui.initPackMcmetaSchemas=void 0;const fi=Be;ui.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",fi.Mod(fi.ObjectNode({pack:fi.Mod(fi.ObjectNode({pack_format:fi.Mod(fi.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:fi.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var hi={};Object.defineProperty(hi,"__esModule",{value:!0}),hi.initPredicatesSchemas=void 0;const bi=Be;hi.initPredicatesSchemas=function(e,t){const r=bi.Reference.bind(void 0,e),o=bi.StringNode.bind(void 0,t),i=bi.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:bi.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:bi.ObjectNode({min:bi.Opt(bi.NumberNode({integer:!0})),max:bi.Opt(bi.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:bi.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",bi.ObjectNode({items:bi.Opt(bi.ListNode(o({validator:"resource",params:{pool:"item"}}))),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:bi.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:bi.Opt(bi.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",bi.ObjectNode({enchantment:bi.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",bi.ObjectNode({blocks:bi.Opt(bi.ListNode(o({validator:"resource",params:{pool:"block"}}))),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:bi.Opt(bi.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",bi.ObjectNode({fluid:bi.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:bi.Opt(bi.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",bi.ObjectNode({position:bi.Opt(bi.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:bi.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:bi.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:bi.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:bi.Opt(bi.ObjectNode({light:r("int_bounds")})),smokey:bi.Opt(bi.BooleanNode()),block:bi.Opt(r("block_predicate")),fluid:bi.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",bi.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:r("int_bounds"),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",bi.ObjectNode({gamemode:bi.Opt(o({enum:"gamemode"})),level:r("int_bounds"),advancements:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),bi.ChoiceNode([{type:"boolean",node:bi.BooleanNode(),change:e=>!0},{type:"object",node:bi.MapNode(o(),bi.BooleanNode())}]))),recipes:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),bi.BooleanNode())),stats:bi.Opt(bi.ListNode(r("statistic_predicate"))),looking_at:bi.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",bi.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:bi.Opt(bi.BooleanNode()),visible:bi.Opt(bi.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",bi.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",bi.ObjectNode({type:bi.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:bi.Opt(o({validator:"team"})),location:bi.Opt(r("location_predicate")),stepping_on:bi.Opt(r("location_predicate")),distance:bi.Opt(r("distance_predicate")),flags:bi.Opt(bi.ObjectNode({is_on_fire:bi.Opt(bi.BooleanNode()),is_sneaking:bi.Opt(bi.BooleanNode()),is_sprinting:bi.Opt(bi.BooleanNode()),is_swimming:bi.Opt(bi.BooleanNode()),is_baby:bi.Opt(bi.BooleanNode())})),equipment:bi.Opt(bi.MapNode(o({enum:"slot"}),r("item_predicate"))),player:bi.Opt(r("player_predicate")),vehicle:bi.Opt(r("entity_predicate")),passenger:bi.Opt(r("entity_predicate")),targeted_entity:bi.Opt(r("entity_predicate")),lightning_bolt:bi.Opt(bi.ObjectNode({blocks_set_on_fire:bi.Opt(r("int_bounds")),entity_struck:bi.Opt(r("entity_predicate"))})),fishing_hook:bi.Opt(bi.ObjectNode({in_open_water:bi.Opt(bi.BooleanNode())})),effects:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",bi.ObjectNode({is_explosion:bi.Opt(bi.BooleanNode()),is_fire:bi.Opt(bi.BooleanNode()),is_magic:bi.Opt(bi.BooleanNode()),is_projectile:bi.Opt(bi.BooleanNode()),is_lightning:bi.Opt(bi.BooleanNode()),bypasses_armor:bi.Opt(bi.BooleanNode()),bypasses_invulnerability:bi.Opt(bi.BooleanNode()),bypasses_magic:bi.Opt(bi.BooleanNode()),source_entity:bi.Opt(r("entity_predicate")),direct_entity:bi.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",bi.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:bi.Opt(bi.BooleanNode()),source_entity:bi.Opt(r("entity_predicate")),type:bi.Opt(r("damage_source_predicate"))},{context:"damage"}))};var gi={};Object.defineProperty(gi,"__esModule",{value:!0}),gi.initRecipeSchemas=void 0;const vi=Be;gi.initRecipeSchemas=function(e,t){const r=vi.Reference.bind(void 0,e),o=vi.StringNode.bind(void 0,t);e.register("recipe",vi.Mod(vi.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[vi.Switch]:[{push:"type"}],[vi.Case]:{"minecraft:crafting_shaped":{group:vi.Opt(o({enum:"recipe_group",additional:!0})),pattern:vi.ListNode(o()),key:vi.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:vi.Opt(o()),ingredients:vi.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:vi.NumberNode({integer:!0})},"minecraft:smithing":{group:vi.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",vi.Mod(vi.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:vi.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",vi.Mod(vi.ObjectNode({item:vi.Opt(o({validator:"resource",params:{pool:"item"}})),tag:vi.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",vi.Mod(vi.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var yi={};Object.defineProperty(yi,"__esModule",{value:!0}),yi.initTagsSchemas=void 0;const Ni=Be;yi.initTagsSchemas=function(e,t){const r=Ni.StringNode.bind(void 0,t),o=e=>Ni.Mod(Ni.ObjectNode({replace:Ni.Opt(Ni.BooleanNode()),values:Ni.ListNode(Ni.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ni.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ni.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))};var Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initTextComponentSchemas=void 0;const ki=Be;Oi.initTextComponentSchemas=function(e,t){const r=ki.Reference.bind(void 0,e),o=ki.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",ki.Mod(ki.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:ki.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ki.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:ki.Opt(o()),font:ki.Opt(o()),bold:ki.Opt(ki.BooleanNode()),italic:ki.Opt(ki.BooleanNode()),underlined:ki.Opt(ki.BooleanNode()),strikethrough:ki.Opt(ki.BooleanNode()),obfuscated:ki.Opt(ki.BooleanNode()),insertion:ki.Opt(o()),clickEvent:ki.Opt(ki.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ki.Switch]:[{push:"action"}],[ki.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ki.Opt(ki.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[ki.Switch]:[{push:"action"}],[ki.Case]:{show_text:{value:ki.Opt(r("text_component")),contents:ki.Opt(r("text_component"))},show_item:{value:ki.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:ki.Opt(ki.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:ki.Opt(ki.NumberNode({integer:!0})),tag:ki.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:ki.Opt(ki.ObjectNode({name:ki.Opt(o()),type:ki.Opt(o()),id:ki.Opt(o())})),contents:ki.Opt(ki.Mod(ki.ObjectNode({name:ki.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:ki.Opt(r("text_component_list"))};e.register("text_component_object",ki.Mod(ki.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ki.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ki.ObjectNode(m({translate:o(),with:ki.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ki.ObjectNode(m({score:ki.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:ki.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ki.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:ki.Opt(r("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ki.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ki.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:ki.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ki.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ki.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:ki.Opt(ki.BooleanNode()),separator:ki.Opt(r("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ki.Mod(ki.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var wi={},xi={};Object.defineProperty(xi,"__esModule",{value:!0}),xi.initBiomeSchemas=void 0;const ji=Be;xi.initBiomeSchemas=function(e,t){const r=ji.StringNode.bind(void 0,t);e.register("biome",ji.Mod(ji.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:ji.NumberNode(),scale:ji.NumberNode(),temperature:ji.NumberNode(),downfall:ji.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:ji.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:ji.Opt(ji.BooleanNode()),creature_spawn_probability:ji.Opt(ji.NumberNode({min:0,max:1})),effects:ji.ObjectNode({sky_color:ji.NumberNode({color:!0}),fog_color:ji.NumberNode({color:!0}),water_color:ji.NumberNode({color:!0}),water_fog_color:ji.NumberNode({color:!0}),grass_color:ji.Opt(ji.NumberNode({color:!0})),foliage_color:ji.Opt(ji.NumberNode({color:!0})),grass_color_modifier:ji.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:ji.Opt(r()),mood_sound:ji.Opt(ji.ObjectNode({sound:r(),tick_delay:ji.NumberNode({integer:!0}),block_search_extent:ji.NumberNode({integer:!0}),offset:ji.NumberNode()})),additions_sound:ji.Opt(ji.ObjectNode({sound:r(),tick_chance:ji.NumberNode({min:0,max:1})})),music:ji.Opt(ji.ObjectNode({sound:r(),min_delay:ji.NumberNode({integer:!0,min:0}),max_delay:ji.NumberNode({integer:!0,min:0}),replace_current_music:ji.BooleanNode()})),particle:ji.Opt(ji.ObjectNode({options:ji.ObjectNode({type:r()}),probability:ji.NumberNode({min:0,max:1})}))}),starts:ji.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:ji.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),ji.Mod(ji.ListNode(ji.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:ji.NumberNode({integer:!0}),minCount:ji.NumberNode({integer:!0}),maxCount:ji.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:ji.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),ji.Mod(ji.ObjectNode({energy_budget:ji.NumberNode(),charge:ji.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:ji.MapNode(r({enum:["air","liquid"]}),ji.Mod(ji.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:ji.ListNode(ji.Mod(ji.ListNode(r({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 Si={};Object.defineProperty(Si,"__esModule",{value:!0}),Si.initCarverSchemas=void 0;const Mi=Be,Pi=Ko;Si.initCarverSchemas=function(e,t){const r=Mi.Reference.bind(void 0,e),o=Mi.StringNode.bind(void 0,t),i={vertical_rotation:Pi.FloatProvider(),shape:Mi.ObjectNode({distance_factor:Pi.FloatProvider(),thickness:Pi.FloatProvider(),width_smoothness:Mi.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Pi.FloatProvider(),vertical_radius_default_factor:Mi.NumberNode(),vertical_radius_center_factor:Mi.NumberNode()})},a={horizontal_radius_multiplier:Pi.FloatProvider(),vertical_radius_multiplier:Pi.FloatProvider(),floor_level:Pi.FloatProvider({min:-1,max:1})};e.register("configured_carver",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:Mi.ObjectNode({probability:Mi.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Pi.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:Mi.BooleanNode(),debug_settings:Mi.Opt(Mi.ObjectNode({debug_mode:Mi.Opt(Mi.BooleanNode()),air_state:Mi.Opt(r("block_state")),water_state:Mi.Opt(r("block_state")),lava_state:Mi.Opt(r("block_state")),barrier_state:Mi.Opt(r("block_state"))})),[Mi.Switch]:["pop",{push:"type"}],[Mi.Case]:{"minecraft:canyon":i,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Li={};Object.defineProperty(Li,"__esModule",{value:!0}),Li.initDecoratorSchemas=void 0;const Ci=Be,Bi=Ko;Li.initDecoratorSchemas=function(e,t){const r=Ci.Reference.bind(void 0,e),o=Ci.StringNode.bind(void 0,t),i={count:Bi.IntProvider({min:0,max:256})};e.register("configured_decorator",Ci.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Ci.ObjectNode({[Ci.Switch]:["pop",{push:"type"}],[Ci.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:cave_surface":{surface:o({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:Ci.NumberNode({integer:!0})},"minecraft:chance":{chance:Ci.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:Ci.NumberNode({integer:!0,min:0}),extra_count:Ci.NumberNode({integer:!0,min:0}),extra_chance:Ci.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:Ci.NumberNode(),below_noise:Ci.NumberNode({integer:!0}),above_noise:Ci.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Ci.NumberNode({integer:!0}),noise_factor:Ci.NumberNode(),noise_offset:Ci.Opt(Ci.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:o({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:Ci.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:Ci.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var zi={},Ri={};Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.initProcessorListSchemas=Ri.Processors=void 0;const Ai=Be;Ri.initProcessorListSchemas=function(e,t){const r=Ai.Reference.bind(void 0,e),o=Ai.StringNode.bind(void 0,t);Ri.Processors=Ai.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Ai.Mod(Ai.ObjectNode({processors:Ai.ListNode(r("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:o({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(r("block_state"))},"minecraft:block_rot":{integrity:Ai.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Ai.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Ai.ListNode(r("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(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Ai.Opt(o({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 i={min_dist:Ai.Opt(Ai.NumberNode({min:0,max:255,integer:!0})),max_dist:Ai.Opt(Ai.NumberNode({min:0,max:255,integer:!0})),min_chance:Ai.Opt(Ai.NumberNode({min:0,max:1})),max_chance:Ai.Opt(Ai.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Ai.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Ai.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Ai.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Ai.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(zi,"__esModule",{value:!0}),zi.initFeatureSchemas=void 0;const Ii=Be,Ti=Ko,Di=Ri;zi.initFeatureSchemas=function(e,t){const r=Ii.Reference.bind(void 0,e),o=Ii.StringNode.bind(void 0,t),i={can_replace:Ii.Opt(Ii.BooleanNode()),project:Ii.Opt(Ii.BooleanNode()),need_water:Ii.Opt(Ii.BooleanNode()),xspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),yspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),zspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),tries:Ii.Opt(Ii.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Ii.ListNode(r("block_state")),blacklist:Ii.ListNode(r("block_state"))},a={state:r("block_state"),radius:Ti.IntProvider({min:0,max:8}),half_height:Ii.NumberNode({integer:!0,min:0,max:4}),targets:Ii.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Ii.Opt(Ii.NumberNode({integer:!0}))},s=Ii.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:Ii.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Ii.NumberNode({min:0,max:1}),targets:Ii.ListNode(s)},l=Ii.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),d={surface:o({enum:["floor","ceiling"]}),depth:Ti.IntProvider({min:1,max:128}),vertical_range:Ii.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Ii.NumberNode({min:0,max:1}),extra_edge_column_chance:Ii.NumberNode({min:0,max:1}),vegetation_chance:Ii.NumberNode({min:0,max:1}),xz_radius:Ti.IntProvider(),replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Ii.ObjectNode({[Ii.Switch]:["pop",{push:"type"}],[Ii.Case]:{"minecraft:bamboo":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Ti.IntProvider({min:0,max:3}),height:Ti.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Ti.IntProvider({min:0,max:16}),rim_size:Ti.IntProvider({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Ii.NumberNode({integer:!0,min:1,max:512}),height:Ti.IntProvider({min:0,max:128}),radius:Ti.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Ii.NumberNode({integer:!0,min:0,max:64}),height_deviation:Ii.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Ti.IntProvider({min:0,max:128}),density:Ti.FloatProvider({min:0,max:2}),wetness:Ti.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Ii.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Ii.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Ii.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Ii.BooleanNode(),exit:Ii.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Ii.Opt(Ii.BooleanNode()),crystal_beam_target:Ii.Opt(r("block_pos")),spikes:Ii.ListNode(Ii.ObjectNode({centerX:Ii.Opt(Ii.NumberNode({integer:!0})),centerZ:Ii.Opt(Ii.NumberNode({integer:!0})),radius:Ii.Opt(Ii.NumberNode({integer:!0})),height:Ii.Opt(Ii.NumberNode({integer:!0})),guarded:Ii.Opt(Ii.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Ii.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Ii.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Ii.ListNode(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Ii.ListNode(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Di.Processors,overlay_processors:Di.Processors},"minecraft:geode":{blocks:Ii.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:Ii.ListNode(r("block_state")),cannot_replace:o({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:o({validator:"resource",params:{pool:"$tag/block"}})}),layers:Ii.ObjectNode({filling:Ii.Opt(Ii.NumberNode({min:.01,max:50})),inner_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50})),middle_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50})),outer_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50}))}),crack:Ii.ObjectNode({generate_crack_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),base_crack_size:Ii.Opt(Ii.NumberNode({min:0,max:5})),crack_point_offset:Ii.Opt(Ii.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Ii.Opt(Ii.NumberNode({min:0,max:1})),use_potential_placements_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Ii.Opt(Ii.BooleanNode()),outer_wall_distance:Ii.Opt(Ti.IntProvider({min:1,max:20})),distribution_points:Ii.Opt(Ti.IntProvider({min:1,max:20})),point_offset:Ii.Opt(Ti.IntProvider({min:0,max:10})),min_gen_offset:Ii.Opt(Ii.NumberNode({integer:!0})),max_gen_offset:Ii.Opt(Ii.NumberNode({integer:!0})),invalid_blocks_threshold:Ii.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Ii.Opt(Ii.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Ii.Opt(Ii.NumberNode({min:0,max:1})),can_place_on_floor:Ii.Opt(Ii.BooleanNode()),can_place_on_ceiling:Ii.Opt(Ii.BooleanNode()),can_place_on_wall:Ii.Opt(Ii.BooleanNode()),can_be_placed_on:Ii.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:o({enum:["up","down","north","east","south","west"]}),allow_water:Ii.BooleanNode(),height_distribution:Ii.ListNode(Ii.ObjectNode({weight:Ii.NumberNode({integer:!0}),data:Ti.IntProvider()})),body_provider:r("block_state_provider"),head_provider:r("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Ii.Opt(Ii.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Ii.Opt(Ii.NumberNode({integer:!0,min:1,max:512})),column_radius:Ti.IntProvider({min:0,max:60}),height_scale:Ti.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Ii.NumberNode({min:0,max:1}),stalactite_bluntness:Ti.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Ti.FloatProvider({min:.1,max:10}),wind_speed:Ti.FloatProvider({min:0,max:2}),min_radius_for_wind:Ii.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Ii.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:Ti.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":i,"minecraft:ore":c,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Ii.ListNode(Ii.ObjectNode({chance:Ii.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:Ii.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:Ii.NumberNode({integer:!0,min:1,max:64}),root_radius:Ii.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Ii.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Ii.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Ii.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Ii.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Ii.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Ii.NumberNode({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:Ti.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:Ii.Opt(Ii.ListNode(r("block_state"))),place_in:Ii.Opt(Ii.ListNode(r("block_state"))),place_under:Ii.Opt(Ii.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:Ii.ListNode(l)},"minecraft:small_dripstone":{max_placements:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:Ii.Opt(Ii.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Ii.NumberNode({integer:!0}),hole_count:Ii.NumberNode({integer:!0}),requires_block_below:Ii.BooleanNode(),valid_blocks:Ii.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Ii.Opt(Ii.BooleanNode()),force_dirt:Ii.Opt(Ii.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),sapling_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Ii.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Ii.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Ii.NumberNode({integer:!0,min:0,max:24}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:bending_trunk_placer":{bend_length:Ti.IntProvider({min:1,max:64}),min_height_for_leaves:Ii.Opt(Ii.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Ti.IntProvider({min:0,max:16}),offset:Ti.IntProvider({min:0,max:16}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:blob_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Ti.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Ti.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Ti.IntProvider({min:1,max:512}),leaf_placement_attempts:Ii.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Ti.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Ii.ListNode(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Ii.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Ii.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Ii.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Ii.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{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",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Ii.Opt(Ii.NumberNode({min:0,max:80})),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:two_layers_feature_size":{limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:81})),lower_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),upper_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:80})),upper_limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:80})),lower_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),middle_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),upper_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:randomized_int_state_provider":{property:o(),values:Ti.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Ii.ListNode(Ii.Mod(Ii.ObjectNode({weight:Ii.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:column_placer":{size:Ti.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Ei={};Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.initNoiseSettingsSchemas=void 0;const Fi=Be,$i=Ko;Ei.initNoiseSettingsSchemas=function(e,t){const r=Fi.Reference.bind(void 0,e),o=Fi.StringNode.bind(void 0,t);e.register("noise_settings",Fi.Mod(Fi.ObjectNode({name:Fi.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Fi.NumberNode({integer:!0}),bedrock_floor_position:Fi.NumberNode({integer:!0}),sea_level:Fi.NumberNode({integer:!0}),min_surface_level:Fi.NumberNode({integer:!0}),disable_mob_generation:Fi.BooleanNode(),noise_caves_enabled:Fi.BooleanNode(),noodle_caves_enabled:Fi.BooleanNode(),aquifers_enabled:Fi.BooleanNode(),deepslate_enabled:Fi.BooleanNode(),ore_veins_enabled:Fi.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Fi.ObjectNode({min_y:Fi.NumberNode({integer:!0,min:-2048,max:2047}),height:Fi.NumberNode({integer:!0,min:0,max:4096}),density_factor:Fi.NumberNode(),density_offset:Fi.NumberNode(),size_horizontal:Fi.NumberNode({integer:!0}),size_vertical:Fi.NumberNode({integer:!0}),simplex_surface_noise:Fi.BooleanNode(),random_density_offset:Fi.Opt(Fi.BooleanNode()),island_noise_override:Fi.Opt(Fi.BooleanNode()),amplified:Fi.Opt(Fi.BooleanNode()),sampling:Fi.ObjectNode({xz_scale:Fi.NumberNode(),y_scale:Fi.NumberNode(),xz_factor:Fi.NumberNode(),y_factor:Fi.NumberNode()}),bottom_slide:Fi.ObjectNode({target:Fi.NumberNode({integer:!0}),size:Fi.NumberNode({integer:!0,min:0}),offset:Fi.NumberNode({integer:!0})}),top_slide:Fi.ObjectNode({target:Fi.NumberNode({integer:!0}),size:Fi.NumberNode({integer:!0,min:0}),offset:Fi.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>$i.DefaultNoiseSettings,validate:(t,r,o,i)=>{var a,n,s,c;return(null===(a=null==(r=e.validate(t,r,o,i))?void 0:r.noise)||void 0===a?void 0:a.min_y)+(null===(n=null==r?void 0:r.noise)||void 0===n?void 0:n.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("generator_structures",Fi.ObjectNode({stronghold:Fi.Opt(Fi.ObjectNode({distance:Fi.NumberNode({integer:!0,min:0,max:1023}),spread:Fi.NumberNode({integer:!0,min:0,max:1023}),count:Fi.NumberNode({integer:!0,min:1,max:4095})})),structures:Fi.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Fi.Mod(Fi.ObjectNode({spacing:Fi.NumberNode({integer:!0,min:0,max:4096}),separation:Fi.Mod(Fi.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:Fi.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Fi.Mod(Fi.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:Fi.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Ui={};Object.defineProperty(Ui,"__esModule",{value:!0}),Ui.initStructureFeatureSchemas=void 0;const qi=Be;Ui.initStructureFeatureSchemas=function(e,t){const r=qi.StringNode.bind(void 0,t),o=qi.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:qi.NumberNode({integer:!0})};e.register("configured_structure_feature",qi.Mod(qi.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:qi.ObjectNode({[qi.Switch]:["pop",{push:"type"}],[qi.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:qi.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:qi.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:qi.NumberNode({min:0,max:1}),cluster_probability:qi.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:qi.Opt(qi.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 Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.initSurfaceBuilderSchemas=void 0;const Hi=Be;Zi.initSurfaceBuilderSchemas=function(e,t){const r=Hi.StringNode.bind(void 0,t),o=Hi.Reference.bind(void 0,e);e.register("configured_surface_builder",Hi.Mod(Hi.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Hi.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 Wi={};Object.defineProperty(Wi,"__esModule",{value:!0}),Wi.initTemplatePoolSchemas=void 0;const Xi=Be,Yi=Ri;Wi.initTemplatePoolSchemas=function(e,t){const r=Xi.Reference.bind(void 0,e),o=Xi.StringNode.bind(void 0,t);e.register("template_pool",Xi.Mod(Xi.ObjectNode({name:o(),fallback:o(),elements:Xi.ListNode(r("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",Xi.Mod(Xi.ObjectNode({weight:Xi.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Xi.Mod(Xi.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[Xi.Switch]:[{push:"element_type"}],[Xi.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Yi.Processors},"minecraft:list_pool_element":{elements:Xi.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Yi.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(wi,"__esModule",{value:!0}),wi.initWorldgenSchemas=void 0;const Ji=xi,Ki=Si,Gi=Li,Vi=zi,Qi=Ei,ea=Ri,ta=Ui,ra=Zi,oa=Wi;wi.initWorldgenSchemas=function(e,t){ea.initProcessorListSchemas(e,t),Ji.initBiomeSchemas(e,t),Ki.initCarverSchemas(e,t),Gi.initDecoratorSchemas(e,t),Vi.initFeatureSchemas(e,t),Qi.initNoiseSettingsSchemas(e,t),ta.initStructureFeatureSchemas(e,t),ra.initSurfaceBuilderSchemas(e,t),oa.initTemplatePoolSchemas(e,t)};var ia={};Object.defineProperty(ia,"__esModule",{value:!0}),ia.initWorldSettingsSchemas=void 0;const aa=Be;ia.initWorldSettingsSchemas=function(e,t){const r=aa.Reference.bind(void 0,e),o=aa.StringNode.bind(void 0,t);e.register("world_settings",aa.Mod(aa.ObjectNode({generate_features:aa.BooleanNode(),bonus_chest:aa.BooleanNode(),seed:aa.NumberNode({integer:!0}),dimensions:aa.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(Xo,"__esModule",{value:!0}),Xo.initSchemas=void 0;const na=Yo,sa=Ko,ca=Go,la=ei,da=oi,ma=ni,_a=li,pa=ui,ua=hi,fa=gi,ha=yi,ba=Oi,ga=wi,va=ia;Xo.initSchemas=function(e,t){sa.initCommonSchemas(e,t),na.initAdvancementSchemas(e,t),ca.initConditionSchemas(e,t),da.initDimensionTypeSchemas(e,t),la.initDimensionSchemas(e,t),ma.initItemModifierSchemas(e,t),_a.initLootTableSchemas(e,t),pa.initPackMcmetaSchemas(e,t),ua.initPredicatesSchemas(e,t),fa.initRecipeSchemas(e,t),ha.initTagsSchemas(e,t),ba.initTextComponentSchemas(e,t),ga.initWorldgenSchemas(e,t),va.initWorldSettingsSchemas(e,t)};var ya=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Na=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Oa=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&ya(t,e,r);return Na(t,e),t};Object.defineProperty(Ho,"__esModule",{value:!0});var ka=Ho.getSchemas=Ho.getCollections=void 0;const wa=Be,xa=Wo,ja=Xo;var Sa=Ho.lootContext=Oa(di);var Ma=Ho.getCollections=function(){const e=new wa.CollectionRegistry;return xa.initCollections(e),e};ka=Ho.getSchemas=function(e){const t=new wa.SchemaRegistry;return ja.initSchemas(t,e),t};var Pa=Object.freeze(Object.assign(Object.create(null),Ho,{[Symbol.toStringTag]:"Module",get getSchemas(){return ka},get getCollections(){return Ma},lootContext:Sa,default:Ho})),La={},Ca={};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.initCollections=void 0,Ca.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"])};var Ba={},za={};Object.defineProperty(za,"__esModule",{value:!0}),za.initAdvancementSchemas=void 0;const Ra=Be;za.initAdvancementSchemas=function(e,t){const r=Ra.Reference.bind(void 0,e),o=Ra.StringNode.bind(void 0,t),i=Ra.ChoiceNode([{type:"object",node:Ra.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Ra.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ra.Mod(Ra.ObjectNode({display:Ra.Opt(Ra.Mod(Ra.ObjectNode({icon:Ra.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:Ra.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Ra.Opt(o()),frame:Ra.Opt(o({enum:["task","challenge","goal"]})),show_toast:Ra.Opt(Ra.BooleanNode()),announce_to_chat:Ra.Opt(Ra.BooleanNode()),hidden:Ra.Opt(Ra.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ra.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:Ra.MapNode(o(),r("advancement_criteria")),requirements:Ra.Opt(Ra.ListNode(Ra.ListNode(o()))),rewards:Ra.Opt(Ra.ObjectNode({function:Ra.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:Ra.Opt(Ra.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ra.Opt(Ra.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:Ra.Opt(Ra.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ra.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ra.Opt(Ra.ObjectNode({player:Ra.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ra.Switch]:["pop",{push:"trigger"}],[Ra.Case]:{"minecraft:bee_nest_destroyed":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ra.Opt(Ra.NumberNode({integer:!0})),item:Ra.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Ra.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ra.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:Ra.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ra.Opt(Ra.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Ra.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Ra.Opt(Ra.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),Ra.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Ra.Opt(i)},"minecraft:enter_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),state:Ra.Opt(Ra.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Ra.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ra.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Ra.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:Ra.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Ra.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Ra.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Ra.Opt(Ra.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Ra.Opt(Ra.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Ra.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Ra.Opt(r("item_predicate")),location:Ra.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Ra.Opt(Ra.ListNode(i))},"minecraft:levitation":{distance:Ra.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Ra.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),state:Ra.Opt(Ra.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ra.Opt(r("item_predicate")),location:Ra.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ra.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Ra.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Ra.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:Ra.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ra.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:Ra.Opt(r("entity_predicate")),item:Ra.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Ra.Opt(r("float_bounds"))},"minecraft:used_totem":{item:Ra.Opt(r("item_predicate"))},"minecraft:using_item":{item:Ra.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Ra.Opt(r("entity_predicate")),item:Ra.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:Ra.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Aa={};!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=Be;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 r={"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,random_density_offset:!0,simplex_surface_noise:!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}},octaves:{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]},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]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},e.initCommonSchemas=function(o,i){const a=t.StringNode.bind(void 0,i),n=t.Reference.bind(void 0,o);o.register("block_state",t.Mod(t.ObjectNode({Name:a({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",t.Mod(t.ObjectNode({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const s=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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})}]));o.register("int_bounds",s(!0)),o.register("float_bounds",s()),o.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(n("number_provider")),max:t.Opt(n("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,o,i,n,s,c)=>{let l={};n&&Object.keys(c[n]).forEach((e=>{l[e]=t.Mod(c[n][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(m({type:t.Mod(t.Opt(a({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:c},l),{context:s,disableSwitchContext:!0}),_=[{type:r,node:c[i][o]}];return n&&_.push({type:"object",priority:-1,node:d}),Object.keys(c).forEach((e=>{_.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(_,{context:s,choiceContext:`${s}.type`})};o.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:a({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),o.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(a({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(a({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()})}}),o.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(m({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e)),source:n("int_provider")})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:n("int_provider")}))}}),o.register("int_provider",e.IntProvider()),o.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 r,o,i;return{[e]:null!==(i=null!==(o=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),o.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("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"}),o.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=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("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:n("location_predicate")},"minecraft:match_tool":{predicate:n("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:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=a({enum:"copy_source"}),o=a({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({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:r},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(a({enum:"map_feature"})),decoration:t.Opt(a({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:o},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(o),lore:t.ListNode(n("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(o),name:t.Opt(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:a({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},c={};return i.get("loot_function_type").forEach((t=>{c[t]=m(m({},s[t]),e)})),c},e.DimensionTypePresets=r=>t.ObjectOrPreset(a({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=o=>t.ObjectOrPreset(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),o,{"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,simplex_surface_noise:!1,use_legacy_random:!0,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}},octaves:{erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]}},structures:{structures:r}},"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,simplex_surface_noise:!0,use_legacy_random:!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}},octaves:{erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]}},structures:{structures:r}},"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,random_density_offset:!0,simplex_surface_noise:!0,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}},octaves:{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]},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]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"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,simplex_surface_noise:!1,use_legacy_random:!0,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}},octaves:{erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"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,simplex_surface_noise:!0,use_legacy_random:!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}},octaves:{erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}}})}}(Aa);var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0}),Ia.initConditionSchemas=void 0;const Ta=Be,Da=Aa;Ia.initConditionSchemas=function(e,t){const r=Ta.Reference.bind(void 0,e),o=Ta.StringNode.bind(void 0,t);e.register("predicate",Ta.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Ta.Mod(Ta.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Ta.Switch]:[{push:"condition"}],[Ta.Case]:Da.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ea={};Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initDimensionSchemas=void 0;const Fa=Be,$a=Aa;Ea.initDimensionSchemas=function(e,t){const r=Fa.Reference.bind(void 0,e),o=Fa.StringNode.bind(void 0,t);e.register("dimension",Fa.Mod(Fa.ObjectNode({type:$a.DimensionTypePresets(r("dimension_type")),generator:Fa.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Fa.Switch]:[{push:"type"}],[Fa.Case]:{"minecraft:noise":{seed:Fa.NumberNode({integer:!0}),settings:$a.NoiseSettingsPresets(r("noise_settings")),biome_source:Fa.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Fa.Switch]:[{push:"type"}],[Fa.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Fa.Opt(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Fa.Mod(Fa.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Fa.Opt(Fa.NumberNode({integer:!0,min:0,max:62})),biomes:Fa.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Fa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Fa.ObjectNode({biome:Fa.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Fa.Opt(Fa.BooleanNode()),features:Fa.Opt(Fa.BooleanNode()),layers:Fa.ListNode(r("generator_layer")),structures:r("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 i=Fa.ChoiceNode([{type:"number",node:Fa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Fa.ListNode(Fa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Fa.Mod(Fa.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Fa.ObjectNode({temperature:i,humidity:i,continentalness:i,erosion:i,weirdness:i,depth:i,offset:Fa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initDimensionTypeSchemas=void 0;const qa=Be,Za=Aa;Ua.initDimensionTypeSchemas=function(e,t){const r=qa.StringNode.bind(void 0,t);e.register("dimension_type",qa.Mod(qa.ObjectNode({ultrawarm:qa.BooleanNode(),natural:qa.BooleanNode(),piglin_safe:qa.BooleanNode(),respawn_anchor_works:qa.BooleanNode(),bed_works:qa.BooleanNode(),has_raids:qa.BooleanNode(),has_skylight:qa.BooleanNode(),has_ceiling:qa.BooleanNode(),coordinate_scale:qa.NumberNode({min:1e-5,max:3e7}),ambient_light:qa.NumberNode(),fixed_time:qa.Opt(qa.NumberNode({integer:!0})),logical_height:qa.NumberNode({integer:!0,min:0,max:4096}),effects:qa.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:qa.NumberNode({integer:!0,min:-2048,max:2047}),height:qa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Za.DefaultDimensionType,validate:(t,r,o,i)=>((null==(r=e.validate(t,r,o,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initItemModifierSchemas=void 0;const Wa=Be,Xa=Aa;Ha.initItemModifierSchemas=function(e,t){const r=Wa.Reference.bind(void 0,e),o=Wa.StringNode.bind(void 0,t);e.register("item_modifier",Wa.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:Wa.Opt(Wa.ListNode(r("condition")))};e.register("function",Wa.Mod(Wa.ObjectNode({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[Wa.Switch]:[{push:"function"}],[Wa.Case]:Xa.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ya={},Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.LootFunctions=Ja.LootConditions=Ja.LootCopySources=Ja.LootEntitySources=Ja.LootTableTypes=void 0,Ja.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]}]]),Ja.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ja.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ja.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",[]]]),Ja.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(Ya,"__esModule",{value:!0}),Ya.initLootTableSchemas=void 0;const Ka=Be,Ga=Ja,Va=Aa;Ya.initLootTableSchemas=function(e,t){const r=Ka.Reference.bind(void 0,e),o=Ka.StringNode.bind(void 0,t),i={conditions:Ka.Opt(Ka.ListNode(r("loot_condition")))},a=m({functions:Ka.Opt(Ka.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of Ga.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Ka.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Ka.SwitchNode(i)}const s=n(Ga.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(Ga.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(Ga.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(Ga.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Ka.Mod(Ka.ObjectNode({type:Ka.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ka.Opt(Ka.ListNode(Ka.Mod(Ka.ObjectNode(m({rolls:r("number_provider"),bonus_rolls:Ka.Opt(r("number_provider")),entries:Ka.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ka.Opt(Ka.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={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",Ka.Mod(Ka.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ka.Opt(Ka.Mod(Ka.NumberNode({integer:!0,min:1}),_)),quality:Ka.Opt(Ka.Mod(Ka.NumberNode({integer:!0}),_)),[Ka.Switch]:[{push:"type"}],[Ka.Case]:{"minecraft:alternatives":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Ka.Opt(Ka.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ka.Mod(Ka.ObjectNode({function:c,[Ka.Switch]:[{push:"function"}],[Ka.Case]:Va.FunctionCases(i,d,l)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ka.Mod(Ka.ObjectNode({condition:s,[Ka.Switch]:[{push:"condition"}],[Ka.Case]:Va.ConditionCases(l)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ka.Mod(Ka.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:r("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Ka.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initPackMcmetaSchemas=void 0;const en=Be;Qa.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:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:en.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initPredicatesSchemas=void 0;const rn=Be;tn.initPredicatesSchemas=function(e,t){const r=rn.Reference.bind(void 0,e),o=rn.StringNode.bind(void 0,t),i=rn.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:rn.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:rn.ObjectNode({min:rn.Opt(rn.NumberNode({integer:!0})),max:rn.Opt(rn.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:rn.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",rn.ObjectNode({items:rn.Opt(rn.ListNode(o({validator:"resource",params:{pool:"item"}}))),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:rn.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:rn.Opt(rn.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",rn.ObjectNode({enchantment:rn.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",rn.ObjectNode({blocks:rn.Opt(rn.ListNode(o({validator:"resource",params:{pool:"block"}}))),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:rn.Opt(rn.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",rn.ObjectNode({fluid:rn.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:rn.Opt(rn.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",rn.ObjectNode({position:rn.Opt(rn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:rn.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:rn.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:rn.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:rn.Opt(rn.ObjectNode({light:r("int_bounds")})),smokey:rn.Opt(rn.BooleanNode()),block:rn.Opt(r("block_predicate")),fluid:rn.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",rn.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:r("int_bounds"),[rn.Switch]:[{push:"type"}],[rn.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",rn.ObjectNode({gamemode:rn.Opt(o({enum:"gamemode"})),level:r("int_bounds"),advancements:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),rn.ChoiceNode([{type:"boolean",node:rn.BooleanNode(),change:e=>!0},{type:"object",node:rn.MapNode(o(),rn.BooleanNode())}]))),recipes:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),rn.BooleanNode())),stats:rn.Opt(rn.ListNode(r("statistic_predicate"))),looking_at:rn.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",rn.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:rn.Opt(rn.BooleanNode()),visible:rn.Opt(rn.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",rn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",rn.ObjectNode({type:rn.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:rn.Opt(o({validator:"team"})),location:rn.Opt(r("location_predicate")),stepping_on:rn.Opt(r("location_predicate")),distance:rn.Opt(r("distance_predicate")),flags:rn.Opt(rn.ObjectNode({is_on_fire:rn.Opt(rn.BooleanNode()),is_sneaking:rn.Opt(rn.BooleanNode()),is_sprinting:rn.Opt(rn.BooleanNode()),is_swimming:rn.Opt(rn.BooleanNode()),is_baby:rn.Opt(rn.BooleanNode())})),equipment:rn.Opt(rn.MapNode(o({enum:"slot"}),r("item_predicate"))),player:rn.Opt(r("player_predicate")),vehicle:rn.Opt(r("entity_predicate")),passenger:rn.Opt(r("entity_predicate")),targeted_entity:rn.Opt(r("entity_predicate")),lightning_bolt:rn.Opt(rn.ObjectNode({blocks_set_on_fire:rn.Opt(r("int_bounds")),entity_struck:rn.Opt(r("entity_predicate"))})),fishing_hook:rn.Opt(rn.ObjectNode({in_open_water:rn.Opt(rn.BooleanNode())})),effects:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",rn.ObjectNode({is_explosion:rn.Opt(rn.BooleanNode()),is_fire:rn.Opt(rn.BooleanNode()),is_magic:rn.Opt(rn.BooleanNode()),is_projectile:rn.Opt(rn.BooleanNode()),is_lightning:rn.Opt(rn.BooleanNode()),bypasses_armor:rn.Opt(rn.BooleanNode()),bypasses_invulnerability:rn.Opt(rn.BooleanNode()),bypasses_magic:rn.Opt(rn.BooleanNode()),source_entity:rn.Opt(r("entity_predicate")),direct_entity:rn.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",rn.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:rn.Opt(rn.BooleanNode()),source_entity:rn.Opt(r("entity_predicate")),type:rn.Opt(r("damage_source_predicate"))},{context:"damage"}))};var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.initRecipeSchemas=void 0;const an=Be;on.initRecipeSchemas=function(e,t){const r=an.Reference.bind(void 0,e),o=an.StringNode.bind(void 0,t);e.register("recipe",an.Mod(an.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[an.Switch]:[{push:"type"}],[an.Case]:{"minecraft:crafting_shaped":{group:an.Opt(o({enum:"recipe_group",additional:!0})),pattern:an.ListNode(o()),key:an.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:an.Opt(o()),ingredients:an.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:an.NumberNode({integer:!0})},"minecraft:smithing":{group:an.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",an.Mod(an.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:an.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",an.Mod(an.ObjectNode({item:an.Opt(o({validator:"resource",params:{pool:"item"}})),tag:an.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",an.Mod(an.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.initTagsSchemas=void 0;const sn=Be;nn.initTagsSchemas=function(e,t){const r=sn.StringNode.bind(void 0,t),o=e=>sn.Mod(sn.ObjectNode({replace:sn.Opt(sn.BooleanNode()),values:sn.ListNode(sn.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:sn.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:sn.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))};var cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.initTextComponentSchemas=void 0;const ln=Be;cn.initTextComponentSchemas=function(e,t){const r=ln.Reference.bind(void 0,e),o=ln.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",ln.Mod(ln.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:ln.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ln.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:ln.Opt(o()),font:ln.Opt(o()),bold:ln.Opt(ln.BooleanNode()),italic:ln.Opt(ln.BooleanNode()),underlined:ln.Opt(ln.BooleanNode()),strikethrough:ln.Opt(ln.BooleanNode()),obfuscated:ln.Opt(ln.BooleanNode()),insertion:ln.Opt(o()),clickEvent:ln.Opt(ln.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ln.Switch]:[{push:"action"}],[ln.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ln.Opt(ln.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[ln.Switch]:[{push:"action"}],[ln.Case]:{show_text:{value:ln.Opt(r("text_component")),contents:ln.Opt(r("text_component"))},show_item:{value:ln.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:ln.Opt(ln.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:ln.Opt(ln.NumberNode({integer:!0})),tag:ln.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:ln.Opt(ln.ObjectNode({name:ln.Opt(o()),type:ln.Opt(o()),id:ln.Opt(o())})),contents:ln.Opt(ln.Mod(ln.ObjectNode({name:ln.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:ln.Opt(r("text_component_list"))};e.register("text_component_object",ln.Mod(ln.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ln.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ln.ObjectNode(m({translate:o(),with:ln.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ln.ObjectNode(m({score:ln.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:ln.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ln.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:ln.Opt(r("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ln.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ln.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:ln.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ln.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ln.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:ln.Opt(ln.BooleanNode()),separator:ln.Opt(r("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ln.Mod(ln.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var dn={},mn={};Object.defineProperty(mn,"__esModule",{value:!0}),mn.initBiomeSchemas=void 0;const _n=Be;mn.initBiomeSchemas=function(e,t){const r=_n.StringNode.bind(void 0,t);e.register("biome",_n.Mod(_n.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),temperature:_n.NumberNode(),downfall:_n.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:_n.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:_n.Opt(_n.BooleanNode()),creature_spawn_probability:_n.Opt(_n.NumberNode({min:0,max:1})),effects:_n.ObjectNode({sky_color:_n.NumberNode({color:!0}),fog_color:_n.NumberNode({color:!0}),water_color:_n.NumberNode({color:!0}),water_fog_color:_n.NumberNode({color:!0}),grass_color:_n.Opt(_n.NumberNode({color:!0})),foliage_color:_n.Opt(_n.NumberNode({color:!0})),grass_color_modifier:_n.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:_n.Opt(r()),mood_sound:_n.Opt(_n.ObjectNode({sound:r(),tick_delay:_n.NumberNode({integer:!0}),block_search_extent:_n.NumberNode({integer:!0}),offset:_n.NumberNode()})),additions_sound:_n.Opt(_n.ObjectNode({sound:r(),tick_chance:_n.NumberNode({min:0,max:1})})),music:_n.Opt(_n.ObjectNode({sound:r(),min_delay:_n.NumberNode({integer:!0,min:0}),max_delay:_n.NumberNode({integer:!0,min:0}),replace_current_music:_n.BooleanNode()})),particle:_n.Opt(_n.ObjectNode({options:_n.ObjectNode({type:r()}),probability:_n.NumberNode({min:0,max:1})}))}),spawners:_n.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),_n.Mod(_n.ListNode(_n.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:_n.NumberNode({integer:!0}),minCount:_n.NumberNode({integer:!0}),maxCount:_n.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:_n.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),_n.Mod(_n.ObjectNode({energy_budget:_n.NumberNode(),charge:_n.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:_n.MapNode(r({enum:["air","liquid"]}),_n.Mod(_n.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:_n.ListNode(_n.Mod(_n.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initCarverSchemas=void 0;const un=Be,fn=Aa;pn.initCarverSchemas=function(e,t){const r=un.Reference.bind(void 0,e),o=un.StringNode.bind(void 0,t),i={vertical_rotation:fn.FloatProvider(),shape:un.ObjectNode({distance_factor:fn.FloatProvider(),thickness:fn.FloatProvider(),width_smoothness:un.NumberNode({integer:!0,min:0}),horizontal_radius_factor:fn.FloatProvider(),vertical_radius_default_factor:un.NumberNode(),vertical_radius_center_factor:un.NumberNode()})},a={horizontal_radius_multiplier:fn.FloatProvider(),vertical_radius_multiplier:fn.FloatProvider(),floor_level:fn.FloatProvider({min:-1,max:1})};e.register("configured_carver",un.Mod(un.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:un.ObjectNode({probability:un.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:fn.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:un.Opt(un.ObjectNode({debug_mode:un.Opt(un.BooleanNode()),air_state:un.Opt(r("block_state")),water_state:un.Opt(r("block_state")),lava_state:un.Opt(r("block_state")),barrier_state:un.Opt(r("block_state"))})),[un.Switch]:["pop",{push:"type"}],[un.Case]:{"minecraft:canyon":i,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var hn={};Object.defineProperty(hn,"__esModule",{value:!0}),hn.initDecoratorSchemas=void 0;const bn=Be,gn=Aa;hn.initDecoratorSchemas=function(e,t){const r=bn.Reference.bind(void 0,e),o=bn.StringNode.bind(void 0,t),i={count:gn.IntProvider({min:0,max:256})};e.register("configured_decorator",bn.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:bn.ObjectNode({[bn.Switch]:["pop",{push:"type"}],[bn.Case]:{"minecraft:block_filter":{predicate:r("block_predicate_worldgen")},"minecraft:block_survives_filter":{state:r("block_state")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:cave_surface":{surface:o({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:bn.NumberNode({integer:!0})},"minecraft:chance":{chance:bn.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:bn.NumberNode({integer:!0,min:0}),extra_count:bn.NumberNode({integer:!0,min:0}),extra_chance:bn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:bn.NumberNode(),below_noise:bn.NumberNode({integer:!0}),above_noise:bn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:bn.NumberNode({integer:!0}),noise_factor:bn.NumberNode(),noise_offset:bn.Opt(bn.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:bn.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen")},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:bn.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:surface_relative_threshold":{heightmap:o({enum:"heightmap_type"}),min_inclusive:bn.Opt(bn.NumberNode({integer:!0})),max_inclusive:bn.Opt(bn.NumberNode({integer:!0}))},"minecraft:water_depth_threshold":{max_water_depth:bn.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var vn={},yn={};Object.defineProperty(yn,"__esModule",{value:!0}),yn.initProcessorListSchemas=yn.Processors=void 0;const Nn=Be;yn.initProcessorListSchemas=function(e,t){const r=Nn.Reference.bind(void 0,e),o=Nn.StringNode.bind(void 0,t);yn.Processors=Nn.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Nn.Mod(Nn.ObjectNode({processors:Nn.ListNode(r("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:o({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(r("block_state"))},"minecraft:block_rot":{integrity:Nn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Nn.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Nn.ListNode(r("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(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Nn.Opt(o({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 i={min_dist:Nn.Opt(Nn.NumberNode({min:0,max:255,integer:!0})),max_dist:Nn.Opt(Nn.NumberNode({min:0,max:255,integer:!0})),min_chance:Nn.Opt(Nn.NumberNode({min:0,max:1})),max_chance:Nn.Opt(Nn.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Nn.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Nn.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Nn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Nn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(vn,"__esModule",{value:!0}),vn.initFeatureSchemas=void 0;const On=Be,kn=Aa,wn=yn;vn.initFeatureSchemas=function(e,t){const r=On.Reference.bind(void 0,e),o=On.StringNode.bind(void 0,t),i=On.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),a={tries:On.Opt(On.NumberNode({integer:!0,min:1})),xz_spread:On.Opt(On.NumberNode({integer:!0,min:0})),y_spread:On.Opt(On.NumberNode({integer:!0,min:0})),only_in_air:On.BooleanNode(),allowed_on:On.ListNode(r("block_state")),disallowed_on:On.ListNode(r("block_state")),feature:i},n={state:r("block_state"),radius:kn.IntProvider({min:0,max:8}),half_height:On.NumberNode({integer:!0,min:0,max:4}),targets:On.ListNode(r("block_state"))},s={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:On.Opt(On.NumberNode({integer:!0}))},c=On.ObjectNode({target:r("rule_test"),state:r("block_state")}),l={size:On.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:On.NumberNode({min:0,max:1}),targets:On.ListNode(c)},d={surface:o({enum:["floor","ceiling"]}),depth:kn.IntProvider({min:1,max:128}),vertical_range:On.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:On.NumberNode({min:0,max:1}),extra_edge_column_chance:On.NumberNode({min:0,max:1}),vegetation_chance:On.NumberNode({min:0,max:1}),xz_radius:kn.IntProvider(),replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:i};e.register("configured_feature",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:On.ObjectNode({[On.Switch]:["pop",{push:"type"}],[On.Case]:{"minecraft:bamboo":{probability:On.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:kn.IntProvider({min:0,max:3}),height:kn.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allow_water:On.BooleanNode(),prioritize_tip:On.BooleanNode(),layers:On.ListNode(On.ObjectNode({height:On.NumberNode({integer:!0,min:0}),state:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:i},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:i},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:kn.IntProvider({min:0,max:16}),rim_size:kn.IntProvider({min:0,max:16})},"minecraft:disk":n,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:On.NumberNode({integer:!0,min:1,max:512}),height:kn.IntProvider({min:0,max:128}),radius:kn.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:On.NumberNode({integer:!0,min:0,max:64}),height_deviation:On.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:kn.IntProvider({min:0,max:128}),density:kn.FloatProvider({min:0,max:2}),wetness:kn.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:On.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:On.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:On.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:On.BooleanNode(),exit:On.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:On.Opt(On.BooleanNode()),crystal_beam_target:On.Opt(r("block_pos")),spikes:On.ListNode(On.ObjectNode({centerX:On.Opt(On.NumberNode({integer:!0})),centerZ:On.Opt(On.NumberNode({integer:!0})),radius:On.Opt(On.NumberNode({integer:!0})),height:On.Opt(On.NumberNode({integer:!0})),guarded:On.Opt(On.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:On.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:On.NumberNode({integer:!0,min:0,max:7}),fossil_structures:On.ListNode(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:On.ListNode(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:wn.Processors,overlay_processors:wn.Processors},"minecraft:geode":{blocks:On.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:On.ListNode(r("block_state")),cannot_replace:o({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:o({validator:"resource",params:{pool:"$tag/block"}})}),layers:On.ObjectNode({filling:On.Opt(On.NumberNode({min:.01,max:50})),inner_layer:On.Opt(On.NumberNode({min:.01,max:50})),middle_layer:On.Opt(On.NumberNode({min:.01,max:50})),outer_layer:On.Opt(On.NumberNode({min:.01,max:50}))}),crack:On.ObjectNode({generate_crack_chance:On.Opt(On.NumberNode({min:0,max:1})),base_crack_size:On.Opt(On.NumberNode({min:0,max:5})),crack_point_offset:On.Opt(On.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:On.Opt(On.NumberNode({min:0,max:1})),use_potential_placements_chance:On.Opt(On.NumberNode({min:0,max:1})),use_alternate_layer0_chance:On.Opt(On.NumberNode({min:0,max:1})),placements_require_layer0_alternate:On.Opt(On.BooleanNode()),outer_wall_distance:On.Opt(kn.IntProvider({min:1,max:20})),distribution_points:On.Opt(kn.IntProvider({min:1,max:20})),point_offset:On.Opt(kn.IntProvider({min:0,max:10})),min_gen_offset:On.Opt(On.NumberNode({integer:!0})),max_gen_offset:On.Opt(On.NumberNode({integer:!0})),invalid_blocks_threshold:On.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:On.Opt(On.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:On.Opt(On.NumberNode({min:0,max:1})),can_place_on_floor:On.Opt(On.BooleanNode()),can_place_on_ceiling:On.Opt(On.BooleanNode()),can_place_on_wall:On.Opt(On.BooleanNode()),can_be_placed_on:On.ListNode(r("block_state"))},"minecraft:huge_brown_mushroom":s,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:On.Opt(On.BooleanNode())},"minecraft:huge_red_mushroom":s,"minecraft:ice_patch":n,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:On.Opt(On.NumberNode({integer:!0,min:1,max:512})),column_radius:kn.IntProvider({min:0,max:60}),height_scale:kn.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:On.NumberNode({min:0,max:1}),stalactite_bluntness:kn.FloatProvider({min:.1,max:10}),stalagmite_bluntness:kn.FloatProvider({min:.1,max:10}),wind_speed:kn.FloatProvider({min:0,max:2}),min_radius_for_wind:On.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:On.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:kn.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":l,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:i,feature_true:i},"minecraft:random_selector":{features:On.ListNode(On.ObjectNode({chance:On.NumberNode({min:0,max:1}),feature:i})),default:i},"minecraft:replace_single_block":{targets:On.ListNode(c)},"minecraft:root_system":{required_vertical_space_for_tree:On.NumberNode({integer:!0,min:1,max:64}),root_radius:On.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:On.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:On.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:On.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:On.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:On.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:On.NumberNode({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:i},"minecraft:scattered_ore":l,"minecraft:sea_pickle":{count:kn.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:On.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:On.ListNode(i)},"minecraft:small_dripstone":{max_placements:On.Opt(On.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:On.Opt(On.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:On.Opt(On.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:On.Opt(On.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:On.NumberNode({integer:!0}),hole_count:On.NumberNode({integer:!0}),requires_block_below:On.BooleanNode(),valid_blocks:On.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:On.Opt(On.BooleanNode()),force_dirt:On.Opt(On.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:On.NumberNode({integer:!0,min:0,max:32}),height_rand_a:On.NumberNode({integer:!0,min:0,max:24}),height_rand_b:On.NumberNode({integer:!0,min:0,max:24}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:bending_trunk_placer":{bend_length:kn.IntProvider({min:1,max:64}),min_height_for_leaves:On.Opt(On.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:kn.IntProvider({min:0,max:16}),offset:kn.IntProvider({min:0,max:16}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:blob_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:kn.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:kn.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:kn.IntProvider({min:1,max:512}),leaf_placement_attempts:On.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:kn.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:On.ListNode(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:On.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:On.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:On.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:On.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:On.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{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",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:On.Opt(On.NumberNode({min:0,max:80})),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:two_layers_feature_size":{limit:On.Opt(On.NumberNode({integer:!0,min:0,max:81})),lower_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),upper_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:On.Opt(On.NumberNode({integer:!0,min:0,max:80})),upper_limit:On.Opt(On.NumberNode({integer:!0,min:0,max:80})),lower_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),middle_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),upper_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const p={seed:On.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:On.Mod(On.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:dual_noise_provider":_(m({},p),{variety:kn.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:On.Mod(On.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:On.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":_(m({},p),{threshold:On.NumberNode({min:-1,max:1}),high_chance:On.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:On.ListNode(r("block_state")),high_states:On.ListNode(r("block_state"))}),"minecraft:noise_provider":_(m({},p),{states:On.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:kn.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:On.ListNode(On.Mod(On.ObjectNode({weight:On.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_predicate_worldgen",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:all_of":{predicates:On.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:On.ListNode(r("block_predicate_worldgen"))},"minecraft:matching_blocks":{offset:r("block_pos"),blocks:On.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:matching_fluids":{offset:r("block_pos"),fluids:On.ListNode(o({validator:"resource",params:{pool:"fluid"}}))},"minecraft:not":{predicate:r("block_predicate_worldgen")}}},{context:"block_predicate"}),{default:()=>({type:"minecraft:matching_blocks"})}))};var xn={};Object.defineProperty(xn,"__esModule",{value:!0}),xn.initNoiseSettingsSchemas=void 0;const jn=Be,Sn=Aa;xn.initNoiseSettingsSchemas=function(e,t){const r=jn.Reference.bind(void 0,e),o=jn.StringNode.bind(void 0,t);e.register("noise_settings",jn.Mod(jn.ObjectNode({bedrock_roof_position:jn.NumberNode({integer:!0}),bedrock_floor_position:jn.NumberNode({integer:!0}),sea_level:jn.NumberNode({integer:!0}),disable_mob_generation:jn.BooleanNode(),noise_caves_enabled:jn.BooleanNode(),noodle_caves_enabled:jn.BooleanNode(),aquifers_enabled:jn.BooleanNode(),deepslate_enabled:jn.BooleanNode(),ore_veins_enabled:jn.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:jn.ObjectNode({min_y:jn.NumberNode({integer:!0,min:-2048,max:2047}),height:jn.NumberNode({integer:!0,min:0,max:4096}),density_factor:jn.NumberNode(),density_offset:jn.NumberNode(),size_horizontal:jn.NumberNode({integer:!0}),size_vertical:jn.NumberNode({integer:!0}),simplex_surface_noise:jn.BooleanNode(),random_density_offset:jn.Opt(jn.BooleanNode()),island_noise_override:jn.Opt(jn.BooleanNode()),amplified:jn.Opt(jn.BooleanNode()),use_legacy_random:jn.Opt(jn.BooleanNode()),sampling:jn.ObjectNode({xz_scale:jn.NumberNode(),y_scale:jn.NumberNode(),xz_factor:jn.NumberNode(),y_factor:jn.NumberNode()}),bottom_slide:r("noise_slider"),top_slide:r("noise_slider")}),octaves:jn.ObjectNode({temperature:r("noise_parameters"),humidity:r("noise_parameters"),continentalness:r("noise_parameters"),erosion:r("noise_parameters"),weirdness:r("noise_parameters"),shift:r("noise_parameters")}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>Sn.DefaultNoiseSettings,validate:(t,r,o,i)=>{var a,n,s,c;return(null===(a=null==(r=e.validate(t,r,o,i))?void 0:r.noise)||void 0===a?void 0:a.min_y)+(null===(n=null==r?void 0:r.noise)||void 0===n?void 0:n.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("noise_slider",jn.ObjectNode({target:jn.NumberNode(),size:jn.NumberNode({integer:!0,min:0}),offset:jn.NumberNode({integer:!0})})),e.register("generator_structures",jn.ObjectNode({stronghold:jn.Opt(jn.ObjectNode({distance:jn.NumberNode({integer:!0,min:0,max:1023}),spread:jn.NumberNode({integer:!0,min:0,max:1023}),count:jn.NumberNode({integer:!0,min:1,max:4095})})),structures:jn.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),jn.Mod(jn.ObjectNode({spacing:jn.NumberNode({integer:!0,min:0,max:4096}),separation:jn.Mod(jn.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:jn.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",jn.Mod(jn.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:jn.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Mn={};Object.defineProperty(Mn,"__esModule",{value:!0}),Mn.initStructureFeatureSchemas=void 0;const Pn=Be;Mn.initStructureFeatureSchemas=function(e,t){const r=Pn.StringNode.bind(void 0,t),o=Pn.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Pn.NumberNode({integer:!0})};e.register("configured_structure_feature",Pn.Mod(Pn.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Pn.ObjectNode({[Pn.Switch]:["pop",{push:"type"}],[Pn.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Pn.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Pn.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Pn.NumberNode({min:0,max:1}),cluster_probability:Pn.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Pn.Opt(Pn.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 Ln={};Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initSurfaceBuilderSchemas=void 0;const Cn=Be;Ln.initSurfaceBuilderSchemas=function(e,t){const r=Cn.StringNode.bind(void 0,t),o=Cn.Reference.bind(void 0,e);e.register("configured_surface_builder",Cn.Mod(Cn.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Cn.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 Bn={};Object.defineProperty(Bn,"__esModule",{value:!0}),Bn.initTemplatePoolSchemas=void 0;const zn=Be,Rn=yn;Bn.initTemplatePoolSchemas=function(e,t){const r=zn.Reference.bind(void 0,e),o=zn.StringNode.bind(void 0,t);e.register("template_pool",zn.Mod(zn.ObjectNode({fallback:o(),elements:zn.ListNode(r("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",zn.Mod(zn.ObjectNode({weight:zn.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",zn.Mod(zn.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[zn.Switch]:[{push:"element_type"}],[zn.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Rn.Processors},"minecraft:list_pool_element":{elements:zn.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Rn.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(dn,"__esModule",{value:!0}),dn.initWorldgenSchemas=void 0;const An=mn,In=pn,Tn=hn,Dn=vn,En=xn,Fn=yn,$n=Mn,Un=Ln,qn=Bn;dn.initWorldgenSchemas=function(e,t){Fn.initProcessorListSchemas(e,t),An.initBiomeSchemas(e,t),In.initCarverSchemas(e,t),Tn.initDecoratorSchemas(e,t),Dn.initFeatureSchemas(e,t),En.initNoiseSettingsSchemas(e,t),$n.initStructureFeatureSchemas(e,t),Un.initSurfaceBuilderSchemas(e,t),qn.initTemplatePoolSchemas(e,t)};var Zn={};Object.defineProperty(Zn,"__esModule",{value:!0}),Zn.initWorldSettingsSchemas=void 0;const Hn=Be;Zn.initWorldSettingsSchemas=function(e,t){const r=Hn.Reference.bind(void 0,e),o=Hn.StringNode.bind(void 0,t);e.register("world_settings",Hn.Mod(Hn.ObjectNode({generate_features:Hn.BooleanNode(),bonus_chest:Hn.BooleanNode(),seed:Hn.NumberNode({integer:!0}),dimensions:Hn.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(Ba,"__esModule",{value:!0}),Ba.initSchemas=void 0;const Wn=za,Xn=Aa,Yn=Ia,Jn=Ea,Kn=Ua,Gn=Ha,Vn=Ya,Qn=Qa,es=tn,ts=on,rs=nn,os=cn,is=dn,as=Zn;Ba.initSchemas=function(e,t){Xn.initCommonSchemas(e,t),Wn.initAdvancementSchemas(e,t),Yn.initConditionSchemas(e,t),Kn.initDimensionTypeSchemas(e,t),Jn.initDimensionSchemas(e,t),Gn.initItemModifierSchemas(e,t),Vn.initLootTableSchemas(e,t),Qn.initPackMcmetaSchemas(e,t),es.initPredicatesSchemas(e,t),ts.initRecipeSchemas(e,t),rs.initTagsSchemas(e,t),os.initTextComponentSchemas(e,t),is.initWorldgenSchemas(e,t),as.initWorldSettingsSchemas(e,t)};var ns=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),ss=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cs=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&ns(t,e,r);return ss(t,e),t};Object.defineProperty(La,"__esModule",{value:!0});var ls=La.getSchemas=La.getCollections=void 0;const ds=Be,ms=Ca,_s=Ba;var ps=La.lootContext=cs(Ja);var us=La.getCollections=function(){const e=new ds.CollectionRegistry;return ms.initCollections(e),e};ls=La.getSchemas=function(e){const t=new ds.SchemaRegistry;return _s.initSchemas(t,e),t};var fs=Object.freeze(Object.assign(Object.create(null),La,{[Symbol.toStringTag]:"Module",get getSchemas(){return ls},get getCollections(){return us},lootContext:ps,default:La})),hs=function(e){return(e=e||{}).circles?function(e){var t=[],r=[];return e.proto?function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return o(i,e);if(i instanceof Map)return new Map(o(Array.from(i),e));if(i instanceof Set)return new Set(o(Array.from(i),e));var a={};for(var n in t.push(i),r.push(a),i){var s=i[n];if("object"!=typeof s||null===s)a[n]=s;else if(s instanceof Date)a[n]=new Date(s);else if(s instanceof Map)a[n]=new Map(o(Array.from(s),e));else if(s instanceof Set)a[n]=new Set(o(Array.from(s),e));else if(ArrayBuffer.isView(s))a[n]=bs(s);else{var c=t.indexOf(s);a[n]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),a}:function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return o(i,e);if(i instanceof Map)return new Map(o(Array.from(i),e));if(i instanceof Set)return new Set(o(Array.from(i),e));var a={};for(var n in t.push(i),r.push(a),i)if(!1!==Object.hasOwnProperty.call(i,n)){var s=i[n];if("object"!=typeof s||null===s)a[n]=s;else if(s instanceof Date)a[n]=new Date(s);else if(s instanceof Map)a[n]=new Map(o(Array.from(s),e));else if(s instanceof Set)a[n]=new Set(o(Array.from(s),e));else if(ArrayBuffer.isView(s))a[n]=bs(s);else{var c=t.indexOf(s);a[n]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),a};function o(e,o){for(var i=Object.keys(e),a=new Array(i.length),n=0;n=0;)e[t]=0}const vs=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]),ys=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]),Ns=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Os=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ks=new Array(576);gs(ks);const ws=new Array(60);gs(ws);const xs=new Array(512);gs(xs);const js=new Array(256);gs(js);const Ss=new Array(29);gs(Ss);const Ms=new Array(30);function Ps(e,t,r,o,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=o,this.max_length=i,this.has_stree=e&&e.length}let Ls,Cs,Bs;function zs(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}gs(Ms);const Rs=e=>e<256?xs[e]:xs[256+(e>>>7)],As=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Is=(e,t,r)=>{e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<{Is(e,r[2*t],r[2*t+1])},Ds=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},Es=(e,t,r)=>{const o=new Array(16);let i,a,n=0;for(i=1;i<=15;i++)o[i]=n=n+r[i-1]<<1;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=Ds(o[t]++,t))}},Fs=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},$s=e=>{e.bi_valid>8?As(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Us=(e,t,r,o)=>{const i=2*t,a=2*r;return e[i]{const o=e.heap[r];let i=r<<1;for(;i<=e.heap_len&&(i{let o,i,a,n,s=0;if(0!==e.last_lit)do{o=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],i=e.pending_buf[e.l_buf+s],s++,0===o?Ts(e,i,t):(a=js[i],Ts(e,a+256+1,t),n=vs[a],0!==n&&(i-=Ss[a],Is(e,i,n)),o--,a=Rs(o),Ts(e,a,r),n=ys[a],0!==n&&(o-=Ms[a],Is(e,o,n)))}while(s{const r=t.dyn_tree,o=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let n,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)qs(e,r,n);c=a;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],qs(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=s,r[2*c]=r[2*n]+r[2*s],e.depth[c]=(e.depth[n]>=e.depth[s]?e.depth[n]:e.depth[s])+1,r[2*n+1]=r[2*s+1]=c,e.heap[1]=c++,qs(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const r=t.dyn_tree,o=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,d,m,_,p,u,f=0;for(_=0;_<=15;_++)e.bl_count[_]=0;for(r[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)d=e.heap[l],_=r[2*r[2*d+1]+1]+1,_>c&&(_=c,f++),r[2*d+1]=_,d>o||(e.bl_count[_]++,p=0,d>=s&&(p=n[d-s]),u=r[2*d],e.opt_len+=u*(_+p),a&&(e.static_len+=u*(i[2*d+1]+p)));if(0!==f){do{for(_=c-1;0===e.bl_count[_];)_--;e.bl_count[_]--,e.bl_count[_+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(_=c;0!==_;_--)for(d=e.bl_count[_];0!==d;)m=e.heap[--l],m>o||(r[2*m+1]!==_&&(e.opt_len+=(_-r[2*m+1])*r[2*m],r[2*m+1]=_),d--)}})(e,t),Es(r,l,e.bl_count)},Ws=(e,t,r)=>{let o,i,a=-1,n=t[1],s=0,c=7,l=4;for(0===n&&(c=138,l=3),t[2*(r+1)+1]=65535,o=0;o<=r;o++)i=n,n=t[2*(o+1)+1],++s{let o,i,a=-1,n=t[1],s=0,c=7,l=4;for(0===n&&(c=138,l=3),o=0;o<=r;o++)if(i=n,n=t[2*(o+1)+1],!(++s{Is(e,0+(o?1:0),3),((e,t,r,o)=>{$s(e),o&&(As(e,r),As(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var Ks={_tr_init:e=>{Ys||((()=>{let e,t,r,o,i;const a=new Array(16);for(r=0,o=0;o<28;o++)for(Ss[o]=r,e=0;e<1<>=7;o<30;o++)for(Ms[o]=i<<7,e=0;e<1<{let i,a,n=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&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)),Hs(e,e.l_desc),Hs(e,e.d_desc),n=(e=>{let t;for(Ws(e,e.dyn_ltree,e.l_desc.max_code),Ws(e,e.dyn_dtree,e.d_desc.max_code),Hs(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*Os[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?Js(e,t,r,o):4===e.strategy||a===i?(Is(e,2+(o?1:0),3),Zs(e,ks,ws)):(Is(e,4+(o?1:0),3),((e,t,r,o)=>{let i;for(Is(e,t-257,5),Is(e,r-1,5),Is(e,o-4,4),i=0;i(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&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(js[r]+256+1)]++,e.dyn_dtree[2*Rs(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Is(e,2,3),Ts(e,256,ks),(e=>{16===e.bi_valid?(As(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 Gs=(e,t,r,o)=>{let i=65535&e|0,a=e>>>16&65535|0,n=0;for(;0!==r;){n=r>2e3?2e3:r,r-=n;do{i=i+t[o++]|0,a=a+i|0}while(--n);i%=65521,a%=65521}return i|a<<16|0};const Vs=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var o=0;o<8;o++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());var Qs=(e,t,r,o)=>{const i=Vs,a=o+r;e^=-1;for(let n=o;n>>8^i[255&(e^t[n])];return-1^e},ec={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"},tc={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:rc,_tr_stored_block:oc,_tr_flush_block:ic,_tr_tally:ac,_tr_align:nc}=Ks,{Z_NO_FLUSH:sc,Z_PARTIAL_FLUSH:cc,Z_FULL_FLUSH:lc,Z_FINISH:dc,Z_BLOCK:mc,Z_OK:_c,Z_STREAM_END:pc,Z_STREAM_ERROR:uc,Z_DATA_ERROR:fc,Z_BUF_ERROR:hc,Z_DEFAULT_COMPRESSION:bc,Z_FILTERED:gc,Z_HUFFMAN_ONLY:vc,Z_RLE:yc,Z_FIXED:Nc,Z_DEFAULT_STRATEGY:Oc,Z_UNKNOWN:kc,Z_DEFLATED:wc}=tc,xc=(e,t)=>(e.msg=ec[t],t),jc=e=>(e<<1)-(e>4?9:0),Sc=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Mc=(e,t,r)=>(t<{const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))},Lc=(e,t)=>{ic(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Pc(e.strm)},Cc=(e,t)=>{e.pending_buf[e.pending++]=t},Bc=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},zc=(e,t,r,o)=>{let i=e.avail_in;return i>o&&(i=o),0===i?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),r),1===e.state.wrap?e.adler=Gs(e.adler,t,i,r):2===e.state.wrap&&(e.adler=Qs(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},Rc=(e,t)=>{let r,o,i=e.max_chain_length,a=e.strstart,n=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,d=e.w_mask,m=e.prev,_=e.strstart+258;let p=l[a+n-1],u=l[a+n];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(r=t,l[r+n]===u&&l[r+n-1]===p&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&a<_);if(o=258-(_-a),a=_-258,o>n){if(e.match_start=t,n=o,o>=s)break;p=l[a+n-1],u=l[a+n]}}}while((t=m[t&d])>c&&0!=--i);return n<=e.lookahead?n:e.lookahead},Ac=e=>{const t=e.w_size;let r,o,i,a,n;do{if(a=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,o=e.hash_size,r=o;do{i=e.head[--r],e.head[r]=i>=t?i-t:0}while(--o);o=t,r=o;do{i=e.prev[--r],e.prev[r]=i>=t?i-t:0}while(--o);a+=t}if(0===e.strm.avail_in)break;if(o=zc(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=o,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Mc(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Mc(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Ic=(e,t)=>{let r,o;for(;;){if(e.lookahead<262){if(Ac(e),e.lookahead<262&&t===sc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=Rc(e,r)),e.match_length>=3)if(o=ac(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=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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=Mc(e,e.ins_h,e.window[e.strstart+1]);else o=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(o&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2},Tc=(e,t)=>{let r,o,i;for(;;){if(e.lookahead<262){if(Ac(e),e.lookahead<262&&t===sc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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!==r&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,o=ac(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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++,o&&(Lc(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(o=ac(e,0,e.window[e.strstart-1]),o&&Lc(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&&(o=ac(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2};function Dc(e,t,r,o,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=o,this.func=i}const Ec=[new Dc(0,0,0,0,((e,t)=>{let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ac(e),0===e.lookahead&&t===sc)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const o=e.block_start+r;if((0===e.strstart||e.strstart>=o)&&(e.lookahead=e.strstart-o,e.strstart=o,Lc(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Lc(e,!1),e.strm.avail_out),1)})),new Dc(4,4,8,4,Ic),new Dc(4,5,16,8,Ic),new Dc(4,6,32,32,Ic),new Dc(4,4,16,16,Tc),new Dc(8,16,32,32,Tc),new Dc(8,16,128,128,Tc),new Dc(8,32,128,256,Tc),new Dc(32,128,258,1024,Tc),new Dc(32,258,258,4096,Tc)];function Fc(){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=wc,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),Sc(this.dyn_ltree),Sc(this.dyn_dtree),Sc(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),Sc(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Sc(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 $c=e=>{if(!e||!e.state)return xc(e,uc);e.total_in=e.total_out=0,e.data_type=kc;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=sc,rc(t),_c},Uc=e=>{const t=$c(e);var r;return t===_c&&((r=e.state).window_size=2*r.w_size,Sc(r.head),r.max_lazy_match=Ec[r.level].max_lazy,r.good_match=Ec[r.level].good_length,r.nice_match=Ec[r.level].nice_length,r.max_chain_length=Ec[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=2,r.match_available=0,r.ins_h=0),t},qc=(e,t,r,o,i,a)=>{if(!e)return uc;let n=1;if(t===bc&&(t=6),o<0?(n=0,o=-o):o>15&&(n=2,o-=16),i<1||i>9||r!==wc||o<8||o>15||t<0||t>9||a<0||a>Nc)return xc(e,uc);8===o&&(o=9);const s=new Fc;return e.state=s,s.strm=e,s.wrap=n,s.gzhead=null,s.w_bits=o,s.w_size=1<qc(e,t,wc,15,8,Oc),deflateInit2:qc,deflateReset:Uc,deflateResetKeep:$c,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?uc:(e.state.gzhead=t,_c):uc,deflate:(e,t)=>{let r,o;if(!e||!e.state||t>mc||t<0)return e?xc(e,uc):uc;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==dc)return xc(e,0===e.avail_out?hc:uc);i.strm=e;const a=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,Cc(i,31),Cc(i,139),Cc(i,8),i.gzhead?(Cc(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Cc(i,255&i.gzhead.time),Cc(i,i.gzhead.time>>8&255),Cc(i,i.gzhead.time>>16&255),Cc(i,i.gzhead.time>>24&255),Cc(i,9===i.level?2:i.strategy>=vc||i.level<2?4:0),Cc(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(Cc(i,255&i.gzhead.extra.length),Cc(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=Qs(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,9===i.level?2:i.strategy>=vc||i.level<2?4:0),Cc(i,3),i.status=113);else{let t=wc+(i.w_bits-8<<4)<<8,r=-1;r=i.strategy>=vc||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=r<<6,0!==i.strstart&&(t|=32),t+=31-t%31,i.status=113,Bc(i,t),0!==i.strstart&&(Bc(i,e.adler>>>16),Bc(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(r=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending!==i.pending_buf_size));)Cc(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindexr&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),0===o&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindexr&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),0===o&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&Pc(e),i.pending+2<=i.pending_buf_size&&(Cc(i,255&e.adler),Cc(i,e.adler>>8&255),e.adler=0,i.status=113)):i.status=113),0!==i.pending){if(Pc(e),0===e.avail_out)return i.last_flush=-1,_c}else if(0===e.avail_in&&jc(t)<=jc(a)&&t!==dc)return xc(e,hc);if(666===i.status&&0!==e.avail_in)return xc(e,hc);if(0!==e.avail_in||0!==i.lookahead||t!==sc&&666!==i.status){let r=i.strategy===vc?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(Ac(e),0===e.lookahead)){if(t===sc)return 1;break}if(e.match_length=0,r=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===yc?((e,t)=>{let r,o,i,a;const n=e.window;for(;;){if(e.lookahead<=258){if(Ac(e),e.lookahead<=258&&t===sc)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,o=n[i],o===n[++i]&&o===n[++i]&&o===n[++i])){a=e.strstart+258;do{}while(o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=ac(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2})(i,t):Ec[i.level].func(i,t);if(3!==r&&4!==r||(i.status=666),1===r||3===r)return 0===e.avail_out&&(i.last_flush=-1),_c;if(2===r&&(t===cc?nc(i):t!==mc&&(oc(i,0,0,!1),t===lc&&(Sc(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),Pc(e),0===e.avail_out))return i.last_flush=-1,_c}return t!==dc?_c:i.wrap<=0?pc:(2===i.wrap?(Cc(i,255&e.adler),Cc(i,e.adler>>8&255),Cc(i,e.adler>>16&255),Cc(i,e.adler>>24&255),Cc(i,255&e.total_in),Cc(i,e.total_in>>8&255),Cc(i,e.total_in>>16&255),Cc(i,e.total_in>>24&255)):(Bc(i,e.adler>>>16),Bc(i,65535&e.adler)),Pc(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?_c:pc)},deflateEnd:e=>{if(!e||!e.state)return uc;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?xc(e,uc):(e.state=null,113===t?xc(e,fc):_c)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return uc;const o=e.state,i=o.wrap;if(2===i||1===i&&42!==o.status||o.lookahead)return uc;if(1===i&&(e.adler=Gs(e.adler,t,r,0)),o.wrap=0,r>=o.w_size){0===i&&(Sc(o.head),o.strstart=0,o.block_start=0,o.insert=0);let e=new Uint8Array(o.w_size);e.set(t.subarray(r-o.w_size,r),0),t=e,r=o.w_size}const a=e.avail_in,n=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,Ac(o);o.lookahead>=3;){let e=o.strstart,t=o.lookahead-2;do{o.ins_h=Mc(o,o.ins_h,o.window[e+3-1]),o.prev[e&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=e,e++}while(--t);o.strstart=e,o.lookahead=2,Ac(o)}return o.strstart+=o.lookahead,o.block_start=o.strstart,o.insert=o.lookahead,o.lookahead=0,o.match_length=o.prev_length=2,o.match_available=0,e.next_in=n,e.input=s,e.avail_in=a,o.wrap=i,_c},deflateInfo:"pako deflate (from Nodeca project)"};const Hc=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Wc=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const t in r)Hc(r,t)&&(e[t]=r[t])}}return e},Xc=e=>{let t=0;for(let o=0,i=e.length;o=252?6:rm>=248?5:rm>=240?4:rm>=224?3:rm>=192?2:1;Jc[254]=Jc[254]=1;var Kc=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,o,i,a,n=e.length,s=0;for(i=0;i>>6,t[a++]=128|63&r):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|63&r):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|63&r);return t},Gc=(e,t)=>{const r=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let o,i;const a=new Array(2*r);for(i=0,o=0;o4)a[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o1?a[i++]=65533:t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Yc)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let o=0;o{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+Jc[e[r]]>t?r:t};var Qc=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 el=Object.prototype.toString,{Z_NO_FLUSH:tl,Z_SYNC_FLUSH:rl,Z_FULL_FLUSH:ol,Z_FINISH:il,Z_OK:al,Z_STREAM_END:nl,Z_DEFAULT_COMPRESSION:sl,Z_DEFAULT_STRATEGY:cl,Z_DEFLATED:ll}=tc;function dl(e){this.options=Wc({level:sl,method:ll,chunkSize:16384,windowBits:15,memLevel:8,strategy:cl},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 Qc,this.strm.avail_out=0;let r=Zc.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==al)throw new Error(ec[r]);if(t.header&&Zc.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Kc(t.dictionary):"[object ArrayBuffer]"===el.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=Zc.deflateSetDictionary(this.strm,e),r!==al)throw new Error(ec[r]);this._dict_set=!0}}dl.prototype.push=function(e,t){const r=this.strm,o=this.options.chunkSize;let i,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?il:tl,"string"==typeof e?r.input=Kc(e):"[object ArrayBuffer]"===el.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),(a===rl||a===ol)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(i=Zc.deflate(r,a),i===nl)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=Zc.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===al;if(0!==r.avail_out){if(a>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},dl.prototype.onData=function(e){this.chunks.push(e)},dl.prototype.onEnd=function(e){e===al&&(this.result=Xc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ml=function(e,t){let r,o,i,a,n,s,c,l,d,m,_,p,u,f,h,b,g,v,y,N,O,k,w,x;const j=e.state;r=e.next_in,w=e.input,o=r+(e.avail_in-5),i=e.next_out,x=e.output,a=i-(t-e.avail_out),n=i+(e.avail_out-257),s=j.dmax,c=j.wsize,l=j.whave,d=j.wnext,m=j.window,_=j.hold,p=j.bits,u=j.lencode,f=j.distcode,h=(1<>>24,_>>>=v,p-=v,v=g>>>16&255,0===v)x[i++]=65535&g;else{if(!(16&v)){if(0==(64&v)){g=u[(65535&g)+(_&(1<>>=v,p-=v),p<15&&(_+=w[r++]<>>24,_>>>=v,p-=v,v=g>>>16&255,!(16&v)){if(0==(64&v)){g=f[(65535&g)+(_&(1<s){e.msg="invalid distance too far back",j.mode=30;break e}if(_>>>=v,p-=v,v=i-a,N>v){if(v=N-v,v>l&&j.sane){e.msg="invalid distance too far back",j.mode=30;break e}if(O=0,k=m,0===d){if(O+=c-v,v2;)x[i++]=k[O++],x[i++]=k[O++],x[i++]=k[O++],y-=3;y&&(x[i++]=k[O++],y>1&&(x[i++]=k[O++]))}else{O=i-N;do{x[i++]=x[O++],x[i++]=x[O++],x[i++]=x[O++],y-=3}while(y>2);y&&(x[i++]=x[O++],y>1&&(x[i++]=x[O++]))}break}}break}}while(r>3,r-=y,p-=y<<3,_&=(1<{const c=s.bits;let l,d,m,_,p,u,f=0,h=0,b=0,g=0,v=0,y=0,N=0,O=0,k=0,w=0,x=null,j=0;const S=new Uint16Array(16),M=new Uint16Array(16);let P,L,C,B=null,z=0;for(f=0;f<=15;f++)S[f]=0;for(h=0;h=1&&0===S[g];g--);if(v>g&&(v=g),0===g)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(b=1;b0&&(0===e||1!==g))return-1;for(M[1]=0,f=1;f<15;f++)M[f+1]=M[f]+S[f];for(h=0;h852||2===e&&k>592)return 1;for(;;){P=f-N,n[h]u?(L=B[z+n[h]],C=x[j+n[h]]):(L=96,C=0),l=1<>N)+d]=P<<24|L<<16|C|0}while(0!==d);for(l=1<>=1;if(0!==l?(w&=l-1,w+=l):w=0,h++,0==--S[f]){if(f===g)break;f=t[r+n[h]]}if(f>v&&(w&_)!==m){for(0===N&&(N=v),p+=b,y=f-N,O=1<852||2===e&&k>592)return 1;m=w&_,i[m]=v<<24|y<<16|p-a|0}}return 0!==w&&(i[p+w]=f-N<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:bl,Z_BLOCK:gl,Z_TREES:vl,Z_OK:yl,Z_STREAM_END:Nl,Z_NEED_DICT:Ol,Z_STREAM_ERROR:kl,Z_DATA_ERROR:wl,Z_MEM_ERROR:xl,Z_BUF_ERROR:jl,Z_DEFLATED:Sl}=tc,Ml=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Pl(){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 Ll=e=>{if(!e||!e.state)return kl;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,yl},Cl=e=>{if(!e||!e.state)return kl;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ll(e)},Bl=(e,t)=>{let r;if(!e||!e.state)return kl;const o=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?kl:(null!==o.window&&o.wbits!==t&&(o.window=null),o.wrap=r,o.wbits=t,Cl(e))},zl=(e,t)=>{if(!e)return kl;const r=new Pl;e.state=r,r.window=null;const o=Bl(e,t);return o!==yl&&(e.state=null),o};let Rl,Al,Il=!0;const Tl=e=>{if(Il){Rl=new Int32Array(512),Al=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(hl(1,e.lens,0,288,Rl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;hl(2,e.lens,0,32,Al,0,e.work,{bits:5}),Il=!1}e.lencode=Rl,e.lenbits=9,e.distcode=Al,e.distbits=5},Dl=(e,t,r,o)=>{let i;const a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>o&&(i=o),a.window.set(t.subarray(r-o,r-o+i),a.wnext),(o-=i)?(a.window.set(t.subarray(r-o,r),0),a.wnext=o,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whavezl(e,15),inflateInit2:zl,inflate:(e,t)=>{let r,o,i,a,n,s,c,l,d,m,_,p,u,f,h,b,g,v,y,N,O,k,w=0;const x=new Uint8Array(4);let j,S;const M=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 kl;r=e.state,12===r.mode&&(r.mode=13),n=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,d=r.bits,m=s,_=c,k=yl;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>>8&255,r.check=Qs(r.check,x,2,0),l=0,d=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=30;break}if((15&l)!==Sl){e.msg="unknown compression method",r.mode=30;break}if(l>>>=4,d-=4,O=8+(15&l),0===r.wbits)r.wbits=O;else if(O>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0,r.mode=3;case 3:for(;d<32;){if(0===s)break e;s--,l+=o[a++]<>>8&255,x[2]=l>>>16&255,x[3]=l>>>24&255,r.check=Qs(r.check,x,4,0)),l=0,d=0,r.mode=4;case 4:for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>8),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0,r.mode=5;case 5:if(1024&r.flags){for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p=r.length,p>s&&(p=s),p&&(r.head&&(O=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(o.subarray(a,a+p),O)),512&r.flags&&(r.check=Qs(r.check,o,p,a)),s-=p,a+=p,r.length-=p),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break e;p=0;do{O=o[a+p++],r.head&&O&&r.length<65536&&(r.head.name+=String.fromCharCode(O))}while(O&&p>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;d<32;){if(0===s)break e;s--,l+=o[a++]<>>=7&d,d-=7&d,r.mode=27;break}for(;d<3;){if(0===s)break e;s--,l+=o[a++]<>>=1,d-=1,3&l){case 0:r.mode=14;break;case 1:if(Tl(r),r.mode=20,t===vl){l>>>=2,d-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}l>>>=2,d-=2;break;case 14:for(l>>>=7&d,d-=7&d;d<32;){if(0===s)break e;s--,l+=o[a++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,d=0,r.mode=15,t===vl)break e;case 15:r.mode=16;case 16:if(p=r.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;i.set(o.subarray(a,a+p),n),s-=p,a+=p,c-=p,n+=p,r.length-=p;break}r.mode=12;break;case 17:for(;d<14;){if(0===s)break e;s--,l+=o[a++]<>>=5,d-=5,r.ndist=1+(31&l),l>>>=5,d-=5,r.ncode=4+(15&l),l>>>=4,d-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,d-=3}for(;r.have<19;)r.lens[M[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,j={bits:r.lenbits},k=hl(0,r.lens,0,19,r.lencode,0,r.work,j),r.lenbits=j.bits,k){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=h,d-=h,r.lens[r.have++]=g;else{if(16===g){for(S=h+2;d>>=h,d-=h,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}O=r.lens[r.have-1],p=3+(3&l),l>>>=2,d-=2}else if(17===g){for(S=h+3;d>>=h,d-=h,O=0,p=3+(7&l),l>>>=3,d-=3}else{for(S=h+7;d>>=h,d-=h,O=0,p=11+(127&l),l>>>=7,d-=7}if(r.have+p>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;p--;)r.lens[r.have++]=O}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,j={bits:r.lenbits},k=hl(1,r.lens,0,r.nlen,r.lencode,0,r.work,j),r.lenbits=j.bits,k){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,j={bits:r.distbits},k=hl(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,j),r.distbits=j.bits,k){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,t===vl)break e;case 20:r.mode=21;case 21:if(s>=6&&c>=258){e.next_out=n,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=d,ml(e,_),n=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,d=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;w=r.lencode[l&(1<>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>v)],h=w>>>24,b=w>>>16&255,g=65535&w,!(v+h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,r.length=g,0===b){r.mode=26;break}if(32&b){r.back=-1,r.mode=12;break}if(64&b){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&b,r.mode=22;case 22:if(r.extra){for(S=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;w=r.distcode[l&(1<>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>v)],h=w>>>24,b=w>>>16&255,g=65535&w,!(v+h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,64&b){e.msg="invalid distance code",r.mode=30;break}r.offset=g,r.extra=15&b,r.mode=24;case 24:if(r.extra){for(S=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(p=_-c,r.offset>p){if(p=r.offset-p,p>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p>r.wnext?(p-=r.wnext,u=r.wsize-p):u=r.wnext-p,p>r.length&&(p=r.length),f=r.window}else f=i,u=n-r.offset,p=r.length;p>c&&(p=c),c-=p,r.length-=p;do{i[n++]=f[u++]}while(--p);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;i[n++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;d<32;){if(0===s)break e;s--,l|=o[a++]<{if(!e||!e.state)return kl;let t=e.state;return t.window&&(t.window=null),e.state=null,yl},inflateGetHeader:(e,t)=>{if(!e||!e.state)return kl;const r=e.state;return 0==(2&r.wrap)?kl:(r.head=t,t.done=!1,yl)},inflateSetDictionary:(e,t)=>{const r=t.length;let o,i,a;return e&&e.state?(o=e.state,0!==o.wrap&&11!==o.mode?kl:11===o.mode&&(i=1,i=Gs(i,t,r,0),i!==o.check)?wl:(a=Dl(e,t,r,r),a?(o.mode=31,xl):(o.havedict=1,yl))):kl},inflateInfo:"pako inflate (from Nodeca project)"};var Fl=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 $l=Object.prototype.toString,{Z_NO_FLUSH:Ul,Z_FINISH:ql,Z_OK:Zl,Z_STREAM_END:Hl,Z_NEED_DICT:Wl,Z_STREAM_ERROR:Xl,Z_DATA_ERROR:Yl,Z_MEM_ERROR:Jl}=tc;function Kl(e){this.options=Wc({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 Qc,this.strm.avail_out=0;let r=El.inflateInit2(this.strm,t.windowBits);if(r!==Zl)throw new Error(ec[r]);if(this.header=new Fl,El.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Kc(t.dictionary):"[object ArrayBuffer]"===$l.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=El.inflateSetDictionary(this.strm,t.dictionary),r!==Zl)))throw new Error(ec[r])}var Gl,Vl;Kl.prototype.push=function(e,t){const r=this.strm,o=this.options.chunkSize,i=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ql:Ul,"[object ArrayBuffer]"===$l.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),a=El.inflate(r,n),a===Wl&&i&&(a=El.inflateSetDictionary(r,i),a===Zl?a=El.inflate(r,n):a===Yl&&(a=Wl));r.avail_in>0&&a===Hl&&r.state.wrap>0&&0!==e[r.next_in];)El.inflateReset(r),a=El.inflate(r,n);switch(a){case Xl:case Yl:case Wl:case Jl:return this.onEnd(a),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||a===Hl))if("string"===this.options.to){let e=Vc(r.output,r.next_out),t=r.next_out-e,i=Gc(r.output,e);r.next_out=t,r.avail_out=o-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(i)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(a!==Zl||0!==s){if(a===Hl)return a=El.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},Kl.prototype.onData=function(e){this.chunks.push(e)},Kl.prototype.onEnd=function(e){e===Zl&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Xc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},(Vl=Gl||(Gl={})).UP="up",Vl.DOWN="down",Vl.NORTH="north",Vl.EAST="east",Vl.SOUTH="south",Vl.WEST="west";const Ql={[Gl.UP]:[0,1,0],[Gl.DOWN]:[0,-1,0],[Gl.NORTH]:[0,0,-1],[Gl.EAST]:[1,0,0],[Gl.SOUTH]:[0,0,1],[Gl.WEST]:[-1,0,0]};var ed,td,rd,od,id,ad,nd,sd,cd,ld,dd,md,_d;function pd(e,t,r){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==r)throw new Error(`Expected ${t} to be of type ${r}, 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 Ql[e]}}(Gl||(Gl={})),function(e){e.create=function(e,t,r){return[e,t,r]},e.offset=function(e,t,r,o){return[e[0]+t,e[1]+r,e[2]+o]},e.towards=function(t,r){return e.offset(t,...Gl.normal(r))}}(ed||(ed={}));class ud{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=pd(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>pd(e.value,"Properties","compound")),{}),o=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:pd(r,t,"string")})),{});return new ud(t,o)}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=null!==(r=rd.readString(o.Name))&&void 0!==r?r:"minecraft:stone",a=rd.readMap(o.Properties,(e=>{var t;return null!==(t=rd.readString(e))&&void 0!==t?t:""}));return new ud(i,a)}}ud.AIR=new ud("minecraft:air");class fd{constructor(e){this.minY=e,this.storage=Array(fd.SIZE),this.palette=[ud.AIR]}get minBlockY(){return this.minY<<4}index(e,t,r){return(e<<8)+(t<<4)+r}getBlockState(e,t,r){var o;const i=this.storage[this.index(e,t,r)];return null!==(o=this.palette[i])&&void 0!==o?o:ud.AIR}setBlockState(e,t,r,o){let i=this.palette.findIndex((e=>e.equals(o)));-1===i&&(i=this.palette.length,this.palette.push(o)),this.storage[this.index(e,t,r)]=i}}fd.WIDTH=16,fd.SIZE=fd.WIDTH*fd.WIDTH*fd.WIDTH;class hd{constructor(e,t,r){this.minY=e,this.height=t,this.pos=r,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[r,o,i]=e,a=this.sections[this.getSectionIndex(o)];return null!==(t=null==a?void 0:a.getBlockState(15&r,15&o,15&i))&&void 0!==t?t:ud.AIR}setBlockState(e,t){const[r,o,i]=e,a=this.getSectionIndex(o);let n=this.sections[a];if(null===n){if(t.equals(ud.AIR))return;n=this.getOrCreateSection(a)}n.setBlockState(15&r,15&o,15&i,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new fd(this.minSection+e)),this.sections[e]}}function bd(e){return e*e}function gd(e,t,r){return t+e*(r-t)}function vd(e,t,r,o,i,a){return gd(t,gd(e,r,o),gd(e,i,a))}function yd(e,t,r){return r<0?e:r>1?t:gd(r,e,t)}function Nd(e){return e*e*e*(e*(6*e-15)+10)}!function(e){e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return e[0]<<19},e.maxBlockZ=function(e){return e[1]<<19}}(td||(td={})),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,r){var o;const i=null!==(o=t(e))&&void 0!==o?o:{};return Object.fromEntries(Object.entries(i).map((([e,t])=>[e,r(t)])))},e.compose=function(e,t,r){const o=t(e);return o?r(o):void 0}}(rd||(rd={}));class Od{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 r=e.nextInt(256-t),o=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=o}}sample2D(e,t){let r,o,i;const a=(e+t)*Od.F2,n=Math.floor(e+a),s=e-(n-(r=(n+(o=Math.floor(t+a)))*Od.G2));let c,l;s>(i=t-(o-r))?(c=1,l=0):(c=0,l=1);const d=s-c+Od.G2,m=i-l+Od.G2,_=s-1+2*Od.G2,p=i-1+2*Od.G2,u=255&n,f=255&o,h=this.P(u+this.P(f))%12,b=this.P(u+c+this.P(f+l))%12,g=this.P(u+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(h,s,i,0,.5)+this.getCornerNoise3D(b,d,m,0,.5)+this.getCornerNoise3D(g,_,p,0,.5))}sample(e,t,r){const o=.3333333333333333*(e+t+r),i=Math.floor(e+o),a=Math.floor(t+o),n=Math.floor(r+o),s=.16666666666666666*(i+a+n),c=e-(i-s),l=t-(a-s),d=r-(n-s);let m,_,p,u,f,h;c>=l?l>=d?(m=1,_=0,p=0,u=1,f=1,h=0):c>=d?(m=1,_=0,p=0,u=1,f=0,h=1):(m=0,_=0,p=1,u=1,f=0,h=1):l127?t-256:t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),o=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=o}}sample(e,t,r,o=0,i=0){const a=e+this.xo,n=t+this.yo,s=r+this.zo,c=Math.floor(a),l=Math.floor(n),d=Math.floor(s),m=a-c,_=n-l,p=s-d;let u=0;if(0!==o){const e=i>=0&&i<_?i:_;u=Math.floor(e/o+1e-7)*o}return this.sampleAndLerp(c,l,d,m,_-u,p,_)}sampleAndLerp(e,t,r,o,i,a,n){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),d=this.P(s+t+1),m=this.P(c+t),_=this.P(c+t+1),p=Od.gradDot(this.P(l+r),o,i,a),u=Od.gradDot(this.P(m+r),o-1,i,a),f=Od.gradDot(this.P(d+r),o,i-1,a),h=Od.gradDot(this.P(_+r),o-1,i-1,a),b=Od.gradDot(this.P(l+r+1),o,i,a-1),g=Od.gradDot(this.P(m+r+1),o-1,i,a-1),v=Od.gradDot(this.P(d+r+1),o,i-1,a-1),y=Od.gradDot(this.P(_+r+1),o-1,i-1,a-1);return function(e,t,r,o,i,a,n,s,c,l,d){return gd(r,vd(e,t,o,i,a,n),vd(e,t,s,c,l,d))}(Nd(o),Nd(n),Nd(a),p,u,f,h,b,g,v,y)}P(e){return 255&this.p[255&e]}}class wd{constructor(e,t,r){if(1-t=0;o-=1)o0&&(s=this.maxLimitNoise.getOctaveNoise(_))&&(m+=s.sample(p,u,f,n,t*n)/l),l/=2}return yd(d/512,m/512,c)}}class jd{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new wd(e,t,r),this.second=new wd(e,t,r);let o=1/0,i=-1/0;for(let n=0;n{var t;return null!==(t=rd.readNumber(e))&&void 0!==t?t:0})))&&void 0!==o?o:[]}};class Sd{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Sd(this.nextLong())}setSeed(e){this.seed=e^Sd.MULTIPLIER&Sd.MODULUS_MASK}advance(){this.seed=this.seed*Sd.MULTIPLIER+Sd.INCREMENT&Sd.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Sd.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,r;for(;(t=this.next(31))-(r=t%e)+(e-1)<0;);return r}nextLong(){return(BigInt(this.next(32))<0;){const t=Math.floor(o/2),i=e+t;r(i)?o=t:(e=i+1,o-=t+1)}return e}(0,this.locations.length,(e=>tt:t.apply.bind(t)),this.derivatives.push(r),this}}(id||(id={})).rotate=function(e,t,r){let{up:o,down:i,north:a,east:n,south:s,west:c}=e;switch(r){case 90:[a,n,s,c]=[n,s,c,a];break;case 180:[a,n,s,c]=[s,c,a,n];break;case 270:[a,n,s,c]=[c,a,n,s]}switch(t){case 90:[o,a,i,s]=[a,i,s,o];break;case 180:[o,a,i,s]=[i,s,o,a];break;case 270:[o,a,i,s]=[s,o,a,i]}return{up:o,down:i,north:a,east:n,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new r(e,null!=t?t:e):e}e.target=function(e,t,r,o,a,n){return new i(e,t,r,o,a,n)},e.parameters=function(e,r,i,a,n,s,c){return new o(t(e),t(r),t(i),t(a),t(n),t(s),c)},e.param=t;class r{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,r=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(r,0)}union(e){return new r(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new r(e,e);const[o,i]=null!==(t=rd.readArray(e,(e=>rd.readNumber(e))))&&void 0!==t?t:[];return new r(null!=o?o:0,null!=i?i:0)}}e.Param=r;class o{constructor(e,t,r,o,i,a,n){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=o,this.depth=i,this.weirdness=a,this.offset=n}fittness(e){return bd(this.temperature.distance(e.temperature))+bd(this.humidity.distance(e.humidity))+bd(this.continentalness.distance(e.continentalness))+bd(this.erosion.distance(e.erosion))+bd(this.depth.distance(e.depth))+bd(this.weirdness.distance(e.weirdness))+bd(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new r(this.offset,this.offset)]}static fromJson(e){var t,i;const a=null!==(t=rd.readObject(e))&&void 0!==t?t:{};return new o(r.fromJson(a.temperature),r.fromJson(a.humidity),r.fromJson(a.continentalness),r.fromJson(a.erosion),r.fromJson(a.depth),r.fromJson(a.weirdness),null!==(i=rd.readInt(a.offset))&&void 0!==i?i:0)}}e.ParamPoint=o;class i{constructor(e,t,r,o,i,a){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=o,this.depth=i,this.weirdness=a}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=i,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)))}};class a{constructor(e){this.root=a.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=a.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let r=0;r<7;r+=1){const o=e.space[r];t+=Math.abs((o.min+o.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,r=-1,o=[];for(let i=0;i<7;++i){a.sort(e,i,!1),o=a.bucketize(e);let n=0;for(const e of o)n+=a.area(e.space);t>n&&(t=n,r=i)}return e=a.sort(e,r,!1),o=a.bucketize(e),o=a.sort(o,r,!0),new s(o.map((e=>a.build(e.children))))}static sort(e,t,r){return e.map((e=>{const o=e.space[t],i=(o.min+o.max)/2;return{key:r?Math.abs(i):i,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let r=[];const o=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const i of e)r.push(i),r.lengthnew r(1/0,-1/0)));for(const r of e)t=[...Array(7)].map(((e,o)=>t[o].union(r.space[o])));return t}search(e,t){let r=1/0,o=null;for(const i of this.children){const a=t(i,e);if(r<=a)continue;const n=i.search(e,t),s=i==n?a:t(n,e);r<=s||(r=s,o=n)}return o}}e.RSubTree=s;class c extends n{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(ad||(ad={}));class Ld{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=null!==(r=rd.readString(o.biome))&&void 0!==r?r:"minecraft:the_void";return new Ld(i)}}class Cd{constructor(e){this.parameters=e}getBiome(e,t,r,o){const i=o(e,t,r);return this.parameters.find(i)}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=(null!==(r=rd.readArray(o.biomes,(e=>{var t,r,o;return r=null!==(t=rd.readObject(e))&&void 0!==t?t:{},{biome:null!==(o=rd.readString(r.biome))&&void 0!==o?o:"minecraft:the_void",parameters:ad.ParamPoint.fromJson(r.parameters)}})))&&void 0!==r?r:[]).map((e=>[e.parameters,()=>e.biome]));return new Cd(new ad.Parameters(i))}}!function(e){function t(e){return l.apply(e)+.015}function r(e){return d.apply(e)}function o(e){return m.apply(e)}function i(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}e.offset=t,e.factor=r,e.peaks=o,e.peaksAndValleys=i,e.point=function(e,t,r){return{continents:e,erosion:t,weirdness:r,ridges:i(r)}},e.nearWater=function(e,t){return!(e<-.2)&&(e<-.05||Math.abs(t)<.15)},e.shape=function(e,i){return{offset:t(e),factor:r(e),peaks:o(e),nearWater:i}};const a=p("beachSpline",-.15,-.05,0,0,.1,0,-.03,!1,!1),n=p("lowSpline",-.1,-.1,.03,.1,.1,.01,-.03,!1,!1),s=p("midSpline",-.1,-.1,.03,.1,.7,.01,-.03,!0,!0),c=p("highSpline",-.05,.3,.03,.1,1,.01,.01,!0,!0),l=new Pd("offsetSampler",(e=>e.continents)).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,a).addPoint(-.15,a).addPoint(-.1,n).addPoint(.25,s).addPoint(1,c),d=new Pd("Factor-Continents",(e=>e.continents)).addPoint(-.19,505).addPoint(-.15,_("erosionCoast",800,!0,"ridgeCoast-OldMountains")).addPoint(-.1,_("erosionInland",700,!0,"ridgeInland-OldMountains")).addPoint(.03,_("erosionMidInland",650,!0,"ridgeMidInland-OldMountains")).addPoint(.06,_("erosionFarInland",600,!1,"ridgeFarInland-OldMountains")),m=new Pd("Peaks",(e=>e.continents)).addPoint(.1,0).addPoint(.2,new Pd("Peaks-erosion",(e=>e.erosion)).addPoint(-.8,new Pd("Peaks-erosion-ridges",(e=>e.ridges)).addPoint(-1,0).addPoint(.2,0).addPoint(1,new Pd("Peaks-erosion-ridges-weirdness",(e=>e.weirdness)).addPoint(-.01,80).addPoint(.01,20))).addPoint(-.4,0));function _(e,t,r,o){const i=new Pd(e,(e=>e.erosion)).addPoint(-.6,t).addPoint(-.5,342).addPoint(-.35,t).addPoint(-.25,t).addPoint(-.1,342).addPoint(.03,t);if(r){const e=new Pd("weirdnessShattered",(e=>e.weirdness)).addPoint(0,t).addPoint(.1,80),r=new Pd("ridgesShattered",(e=>e.ridges)).addPoint(-.9,t).addPoint(-.69,e);i.addPoint(.35,t).addPoint(.45,r).addPoint(.55,r).addPoint(.62,t)}else{const e=new Pd(o,(e=>e.ridges)).addPoint(-.7,t).addPoint(-.15,175),r=new Pd(o,(e=>e.ridges)).addPoint(.45,t).addPoint(.7,200);i.addPoint(.05,r).addPoint(.4,r).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return i}function p(e,t,r,o,i,a,n,s,c,l){const d=u(gd(a,.6,1.5),l),m=u(gd(a,.6,1),l),_=u(a,l),p=b(e+"-widePlateau",t-.15,.5*a,gd(.5,.5,.5)*a,.5*a,.6*a,.5),f=b(e+"-narrowPlateau",t,n*a,o*a,.5*a,.6*a,.5),h=b(e+"-plains",t,n,n,o,i,.5),g=b(e+"-plainsFarInland",t,n,n,o,i,.5),v=new Pd(e,(e=>e.ridges)).addPoint(-1,t).addPoint(-.4,h).addPoint(0,i+.07),y=b(e+"-swamps",-.02,s,s,o,i,0),N=new Pd(e,(e=>e.erosion)).addPoint(-.85,d).addPoint(-.7,m).addPoint(-.4,_).addPoint(-.35,p).addPoint(-.1,f).addPoint(.2,h);return c&&N.addPoint(.4,g).addPoint(.45,v).addPoint(.55,v).addPoint(.58,g),N.addPoint(.7,y),N}function u(e,t){const r=new Pd(`M-spline for continentalness: ${e} ${t}`,(e=>e.ridges)),o=f(-1,e,-.7),i=f(1,e,-.7),a=.5*(1-(n=e))/(.46082947*(1-.5*(1-n)))-1.17;var n;if(-.65e.ridges)).addPoint(-1,t,s).addPoint(-.4,r,Math.min(s,c)).addPoint(0,o,c).addPoint(.4,i,2*(i-o)).addPoint(1,a,.7*(a-i))}}(nd||(nd={}));class Bd{constructor(e,t,r,o,i,a){this.cellCountY=t,this.cellCountZ=r,this.cellMinY=i,this.filler=a,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.minCellX=o[0]*e,this.minCellZ=o[1]*r,this.slice0=Bd.allocateSlice(t,r),this.slice1=Bd.allocateSlice(t,r)}static allocateSlice(e,t){const r=Array(t+1);for(let o=0;o>2,n=r*this.cellWidth>>2,{offset:s,factor:c,peaks:l}=this.getTerrainShape(a,n),d=684.412*this.settings.sampling.xzScale,m=684.412*this.settings.sampling.yScale,_=d/this.settings.sampling.xzFactor,p=m/this.settings.sampling.yFactor;for(let u=0;u<=i;u+=1){const i=u+o,a=this.blendedNoise.sample(t,i,r,d,m,_,p),n=this.samplePeakNoise(l,t*this.cellHeight,r*this.cellHeight)/128,f=this.computeInitialDensity(i*this.cellHeight,s,c,0,n)+a;e[u]=this.applySlide(f,i)}}samplePeakNoise(e,t,r){if(0===e)return 0;const o=3e3/this.cellWidth,i=this.mountainPeakNoise.sample(t*o,0,r*o);return i>0?e*i:e/2*i}computeInitialDensity(e,t,r,o,i){const a=(zd.computeDimensionDensity(this.settings.densityFactor,this.settings.densityOffset,e,o)+t+i)*r;return a*(a>0?4:1)}applySlide(e,t){const r=t-Math.floor(this.settings.minY/this.cellHeight);if(this.settings.topSlide.size>0){const t=(this.cellCountY-r-this.settings.topSlide.offset)/this.settings.topSlide.size;e=yd(this.settings.topSlide.target,e,t)}if(this.settings.bottomSlide.size>0){const t=(r-this.settings.bottomSlide.offset)/this.settings.bottomSlide.size;e=yd(this.settings.bottomSlide.target,e,t)}return e}static computeDimensionDensity(e,t,r,o=0){return e*(1-r/128+o)+t}}class Rd{constructor(e,t,r,o){this.seed=e,this.biomeSource=t,this.settings=r,this.cellHeight=r.noise.ySize<<2,this.cellWidth=r.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(r.noise.height/this.cellHeight),this.sampler=new zd(this.cellWidth,this.cellHeight,this.cellCountY,t,r.noise,r.octaves,e,o)}fill(e){const t=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),o=Math.floor(t/this.cellHeight),i=Math.floor((r-t)/this.cellHeight),a=td.minBlockX(e.pos),n=td.minBlockZ(e.pos),s=new Bd(this.cellCountXZ,i,this.cellCountXZ,e.pos,o,this.sampler.fillNoiseColumn.bind(this.sampler)),c=Array(s);c.forEach((e=>e.initializeForFirstCellX()));for(let l=0;le.advanceCellX(l)));for(let t=0;t=0;d-=1){c.forEach((e=>e.selectCellYZ(d,t)));for(let i=this.cellHeight-1;i>=0;i-=1){const m=(o+d)*this.cellHeight+i,_=15&m,p=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==p&&(r=e.getOrCreateSection(p));const u=i/this.cellHeight;c.forEach((e=>e.updateForY(u)));for(let e=0;ee.updateForX(d)));for(let e=0;ee.swapSlices()))}}baseState(e,t,r,o){return(o=(o=function(e,t,r){return Math.max(t,Math.min(r,e))}(o/200,-1,1))/2-o*o*o/24)>0?this.settings.defaultBlock:t{var t,r,o;return{distance:null!==(t=rd.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=rd.readInt(e.spread))&&void 0!==r?r:0,count:null!==(o=rd.readInt(e.count))&&void 0!==o?o:0}})),structures:rd.readMap(r.structures,(e=>{var t,r,o,i,a;return r=null!==(t=rd.readObject(e))&&void 0!==t?t:{},{spacing:null!==(o=rd.readInt(r.spacing))&&void 0!==o?o:0,separation:null!==(i=rd.readInt(r.separation))&&void 0!==i?i:0,salt:null!==(a=rd.readInt(r.salt))&&void 0!==a?a:0}}))}},(_d||(_d={})).fromJson=function(e){var t;const r=null!==(t=rd.readObject(e))&&void 0!==t?t:{};return{temperature:od.fromJson(r.temperature),humidity:od.fromJson(r.humidity),continentalness:od.fromJson(r.continentalness),erosion:od.fromJson(r.erosion),weirdness:od.fromJson(r.weirdness),shift:od.fromJson(r.shift)}},(Id.prototype=new O).isPureReactComponent=!0,Id.prototype.shouldComponentUpdate=function(e,t){return Ad(this.props,e)||Ad(this.state,t)};var Dd=e.__b;e.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Dd&&Dd(e)};var Ed=e.__e;e.__e=function(e,t,r){if(e.then)for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return null==t.__e&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t);Ed(e,t,r)};var Fd=e.unmount;function $d(){this.__u=0,this.t=null,this.__b=null}function Ud(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function qd(){this.u=null,this.o=null}e.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),Fd&&Fd(e)},($d.prototype=new O).__c=function(e,t){var r=t.__c,o=this;null==o.t&&(o.t=[]),o.t.push(r);var i=Ud(o.__v),a=!1,n=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=n;var s=function(){if(!--o.__u){if(o.state.__e){var e=o.state.__e;o.__v.__k[0]=function e(t,r,o){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,r,o)})),t.__c&&t.__c.__P===r&&(t.__e&&o.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=o)),t}(e,e.__c.__P,e.__c.__O)}var t;for(o.setState({__e:o.__b=null});t=o.t.pop();)t.forceUpdate()}},c=!0===t.__h;o.__u++||c||o.setState({__e:o.__b=o.__v.__k[0]}),e.then(n,n)},$d.prototype.componentWillUnmount=function(){this.t=[]},$d.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,r,o){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var r in t)e[r]=t[r];return e}({},t)).__c&&(t.__c.__P===o&&(t.__c.__P=r),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,r,o)}))),t}(this.__b,r,o.__O=o.__P)}this.__b=null}var i=t.__e&&v(N,null,e.fallback);return i&&(i.__h=null),[v(N,null,t.__e?null:e.children),i]};var Zd=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]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 return value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\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 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 return value.map(v => this.unwrapLists(v.node));\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 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 return 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 },\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 let 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 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.NumberNode = void 0;\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\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 let 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 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 = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\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[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\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\";\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.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 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 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.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 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 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.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 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 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}\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.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 random_density_offset: true,\r\n simplex_surface_noise: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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: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 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_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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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 random_density_offset: true,\r\n simplex_surface_noise: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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 = 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 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 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/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\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 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:block_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:block_survives_filter': {\r\n state: Reference('block_state')\r\n },\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: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 },\r\n 'minecraft:heightmap': {\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:surface_relative_threshold': {\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: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 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 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 only_in_air: core_1.BooleanNode(),\r\n allowed_on: core_1.ListNode(Reference('block_state')),\r\n disallowed_on: core_1.ListNode(Reference('block_state')),\r\n feature: Feature,\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: ['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_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true, min: 0 }),\r\n state: 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: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: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 },\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 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 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 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:matching_blocks': {\r\n offset: Reference('block_pos'),\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n offset: Reference('block_pos'),\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 }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:matching_blocks'\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 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 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 use_legacy_random: 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 }),\r\n octaves: core_1.ObjectNode({\r\n temperature: Reference('noise_parameters'),\r\n humidity: Reference('noise_parameters'),\r\n continentalness: Reference('noise_parameters'),\r\n erosion: Reference('noise_parameters'),\r\n weirdness: Reference('noise_parameters'),\r\n shift: Reference('noise_parameters'),\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('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}\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 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 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 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'\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","\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","import t from\"pako\";import{vec3 as e,mat4 as s,glMatrix as i}from\"gl-matrix\";var n;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(n||(n={}));const r={[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 o;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return r[t]}}(n||(n={})),function(t){t.create=function(t,e,s){return[t,e,s]},t.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},t.towards=function(e,s){return t.offset(e,...n.normal(s))}}(o||(o={}));const a={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},l=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class h{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&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}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),i.push(128|63&s)):s<65536?(i.push(224|s>>12),i.push(128|s>>6&63),i.push(128|63&s)):(i.push(240|s>>18&7),i.push(128|s>>12&63),i.push(128|s>>6&63),i.push(128|63&s));return i}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(a[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),i.setInt16(t+1,65535&n),i.setInt8(t+3,r),i.setInt32(t+4096,e.timestamp);const o=4096*n;i.setInt32(o,e.data.length+1),i.setInt8(o+4,e.compression),s.set(e.data,o+5),n+=r}return s}function P(t,e,s,i){const n=x(t,e,s);switch(n.compression){case 1:n.data=v(i);break;case 2:n.data=v(i,!1,!0);break;case 3:n.data=m(i);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function x(t,e,s){const i=t.find((t=>t.x===e&&t.z===s));if(void 0===i)throw new Error(`Cannot find chunk [${e}, ${s}]`);return i}function y(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 A(t,e,s,i){const n=y(t,e,\"list\");if(n.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${n.type}s`);if(i&&n.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${n.value.length}`);return n.value}function S(t,e){try{return t()}catch(t){return e}}class B{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=y(t.value,\"Name\",\"string\"),s=S((()=>y(t.value,\"Properties\",\"compound\")),{}),i=Object.keys(s).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:y(s,e,\"string\")})),{});return new B(e,i)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.Name))&&void 0!==s?s:\"minecraft:stone\",r=k.readMap(i.Properties,(t=>{var e;return null!==(e=k.readString(t))&&void 0!==e?e:\"\"}));return new B(n,r)}}B.AIR=new B(\"minecraft:air\");class E{constructor(t){this.minY=t,this.storage=Array(E.SIZE),this.palette=[B.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return null!==(i=this.palette[n])&&void 0!==i?i:B.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex((t=>t.equals(i)));-1===n&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}E.WIDTH=16,E.SIZE=E.WIDTH*E.WIDTH*E.WIDTH;class C{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,i,n]=t,r=this.sections[this.getSectionIndex(i)];return null!==(e=null==r?void 0:r.getBlockState(15&s,15&i,15&n))&&void 0!==e?e:B.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(null===o){if(e.equals(B.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new E(this.minSection+t)),this.sections[t]}}var I,k,R;!function(t){t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return t[0]<<19},t.maxBlockZ=function(t){return t[1]<<19}}(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 i;const n=null!==(i=e(t))&&void 0!==i?i:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const i=e(t);return i?s(i):void 0}}(k||(k={}));class _{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,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new B(e,s);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:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},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]B.fromNbt({name:\"\",value:t}))),i=A(t.value,\"blocks\",\"compound\").map((t=>({pos:A(t,\"pos\",\"int\",3),state:y(t,\"state\",\"int\"),nbt:S((()=>y(t,\"nbt\",\"compound\")),void 0)})));return new _(e,s,i)}}function F(t){return t*t}function M(t,e,s){return Math.max(e,Math.min(s,t))}function N(t,e,s){return e+t*(s-e)}function T(t,e,s,i,n,r){return N(e,N(t,s,i),N(t,n,r))}function O(t,e,s,i,n,r,o,a,l,h,u){return N(s,T(t,e,i,n,r,o),T(t,e,a,l,h,u))}function U(t,e,s){return s<0?t:s>1?e:N(s,t,e)}function D(t){return t*t*t*(t*(6*t-15)+10)}function L(t,e,s){let i=e-t;for(;i>0;){const e=Math.floor(i/2),n=t+e;s(n)?i=e:(t=n+1,i-=e+1)}return t}class z{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),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*z.F2,o=Math.floor(t+r),a=t-(o-(s=(o+(i=Math.floor(e+r)))*z.G2));let l,h;a>(n=e-(i-s))?(l=1,h=0):(l=0,h=1);const u=a-l+z.G2,c=n-h+z.G2,d=a-1+2*z.G2,f=n-1+2*z.G2,g=255&o,p=255&i,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,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=s-(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 s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,a=s+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!==i){const t=n>=0&&n=0;i-=1)i0&&(a=this.maxLimitNoise.getOctaveNoise(r))&&(c+=a.sample(f,g,p,d,e*d)/h),h/=2}return U(u/512,c/512,l)}}class X{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new j(t,e,s),this.second=new j(t,e,s);let i=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=k.readNumber(t))&&void 0!==e?e:0})))&&void 0!==i?i:[]}}}(R||(R={}));class H{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new z(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-e)?this.noiseLevels[e]=new z(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,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o>BigInt(W.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))<ee:e.apply.bind(e)),this.derivatives.push(s),this}}const $=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],G=[124/256,189/256,107/256],q=$(6396257),K=$(8431445),Q=$(4764952),tt=$(4159204),et=$(8431445),st=$(2129968),it=t=>[t/8,1-t/32,64*t],nt={large_fern:()=>G,tall_grass:()=>G,grass_block:()=>G,fern:()=>G,grass:()=>G,potted_fern:()=>G,spruce_leaves:()=>q,birch_leaves:()=>K,oak_leaves:()=>Q,jungle_leaves:()=>Q,acacia_leaves:()=>Q,dark_oak_leaves:()=>Q,vine:()=>Q,water:()=>tt,bubble_column:()=>tt,cauldron:()=>tt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),M(e*e*.7-.5,0,1),M(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>G,attached_melon_stem:()=>et,attached_pumpkin_stem:()=>et,melon_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>st};var rt;function ot(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let i=0;for(const e of t)s.set(e,i),i+=e.length;return s}function at(t,s){const i=e.create();for(let n=0;nthis.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,n,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=rt.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,n,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,-i.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-i.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),at(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=ot(...f);return at(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,i]=t.split(\"=\");return e[s]===i}))}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 lt(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]},ut={x:[1,0,0],y:[0,1,0],z:[0,0,1]},ct=1.41421356237,dt={x:[1,ct,ct],y:[ct,1,ct],z:[ct,ct,1]};class ft{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,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,i,s,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),i+=r.texCoord.length/2}return{position:ot(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,n,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,P;const x=r.from[0],y=r.from[1],A=r.from[2],S=r.to[0],B=r.to[1],E=r.to[2],C=[],I=[],k=[],R=[],_=(e,s,i)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,P,x,y]=a.getTextureUV(this.getTexture(e.texture)),A=(x-w)/16,S=(y-P)/16,B=A/16,E=S/16;s[0]=(null!==(l=null===(r=e.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+B,s[1]=(null!==(u=null===(h=e.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*S+E,s[2]=(null!==(d=null===(c=e.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-B,s[3]=(null!==(g=null===(f=e.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*S-E;const _=ht[null!==(p=e.rotation)&&void 0!==p?p:0];I.push(w+s[_[0]],P+s[_[1]],w+s[_[2]],P+s[_[3]],w+s[_[4]],P+s[_[5]],w+s[_[6]],P+s[_[7]]);const F=(null!==(m=e.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=nt[t.slice(10)])||void 0===v?void 0:v.call(nt,n))&&void 0!==b?b:[1,1,1];k.push(...F,...F,...F,...F),C.push(...i),R.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]||_(r.faces.up,[x,16-E,S,16-A],[x,B,E,S,B,E,S,B,A,x,B,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]||_(r.faces.down,[16-E,16-S,16-A,16-x],[x,y,A,S,y,A,S,y,E,x,y,E]),!(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]||_(r.faces.south,[x,16-B,S,16-y],[x,y,E,S,y,E,S,B,E,x,B,E]),!(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]||_(r.faces.north,[16-S,16-B,16-x,16-y],[S,y,A,x,y,A,x,B,A,S,B,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]||_(r.faces.east,[16-E,16-B,16-A,16-y],[S,y,E,S,y,A,S,B,A,S,B,E]),!(null===(P=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===P?void 0:P.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||_(r.faces.west,[A,16-B,E,16-y],[x,y,A,x,y,E,x,B,E,x,B,A]);const F=s.create();if(s.identity(F),r.rotation){const t=e.fromValues(...r.rotation.origin);s.translate(F,F,t),s.rotate(F,F,i.toRadian(r.rotation.angle),ut[r.rotation.axis]),r.rotation.rescale&&s.scale(F,F,dt[r.rotation.axis]),e.negate(t,t),s.translate(F,F,t)}const M=new Float32Array(C);return at(M,F),{position:M,texCoord:I,tintColor:k,index:R}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!==(s=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==s?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)&&void 0!==e?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 ft(t,s,e.textures,e.elements)}}class gt{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),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),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 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 pt(t,e,s,i,n){const r=new lt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,s,i)}function mt(t,e,s,i,r,o){const a=r.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 pt(`minecraft:${t}`,i,e,r,new ft(\"\",\"\",{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 vt={\"minecraft:water\":(t,e,s,i)=>mt(\"water\",t,parseInt(e.level),s,i,0),\"minecraft:lava\":(t,e,s,i)=>mt(\"lava\",t,parseInt(e.level),s,i),\"minecraft:chest\":(t,e,s)=>function(t,e,s,i){return pt(\"minecraft:chest\",i,t,{},new ft(\"\",\"\",{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)},bt=new Set(Object.keys(vt));class wt{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==i?void 0:i.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==i?void 0:i.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==i?void 0:i.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new gt(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 gt(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 gt(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),s=2*Math.abs(t[1])+(t[1]<0?1:0),i=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][i]||(this.chunks[e][s][i]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][i]}updateStructureBuffers(t){var i;const r=(t,i,n)=>{const r=s.create();s.translate(r,r,i),at(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let s=0;s{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,ot(...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,ot(...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!==(i=this.resources.getDefaultBlockProperties(o))&&void 0!==i?i:{};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=>e.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,n.UP),down:this.needsCull(s,n.DOWN),west:this.needsCull(s,n.WEST),east:this.needsCull(s,n.EAST),north:this.needsCull(s,n.NORTH),south:this.needsCull(s,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),r(l,s.pos,c)),bt.has(o)&&(l=vt[o](c.indexOffset,a,this.resources,e),r(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 s,i;const r=null===(s=this.structure.getBlock(o.towards(t.pos,e)))||void 0===s?void 0:s.state;return!!r&&((null===(i=this.resources.getBlockFlags(r.getName()))||void 0===i?void 0:i.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&r.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),i=[],n=[];i.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),i.push(0,0,0,0,0,s),n.push(0,0,1,0,0,1),i.push(0,0,0,0,e,0),i.push(t,0,0,t,e,0),i.push(0,0,s,0,e,s),i.push(t,0,s,t,e,s),i.push(0,e,0,0,e,s),i.push(t,e,0,t,e,s),i.push(0,e,0,t,e,0),i.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)i.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)i.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:i.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 i=0;i{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,s,i){this.gl.viewport(t,e,s,i),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const i=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(i,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(i)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!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 Pt(t,e,s,i){return new(s||(s=Promise))((function(n,r){function o(t){try{l(i.next(t))}catch(t){r(t)}}function a(t){try{l(i.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(o,a)}l((i=i.apply(t,e||[])).next())}))}class xt{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 Pt(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),i=16*s,n=1/s,r=document.createElement(\"canvas\");r.width=i,r.height=i;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Pt(this,void 0,void 0,(function*(){const i=l%s,r=Math.floor(l/s);l+=1,a[e]=[n*i,n*r,n*i+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*i,16*r,16,16)}))))),new xt(o.getImageData(0,0,i,i),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return xt.drawInvalidTexture(e),new xt(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 yt,At,St,Bt,Et,Ct,It,kt;!function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,i,r,o){return new n(t,e,s,i,r,o)},t.parameters=function(t,s,n,r,o,a,l){return new i(e(t),e(s),e(n),e(r),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[i,n]=null!==(e=k.readArray(t,(t=>k.readNumber(t))))&&void 0!==e?e:[];return new s(null!=i?i:0,null!=n?n:0)}}t.Param=s;class i{constructor(t,e,s,i,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return F(this.temperature.distance(t.temperature))+F(this.humidity.distance(t.humidity))+F(this.continentalness.distance(t.continentalness))+F(this.erosion.distance(t.erosion))+F(this.depth.distance(t.depth))+F(this.weirdness.distance(t.weirdness))+F(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,n;const r=null!==(e=k.readObject(t))&&void 0!==e?e:{};return new i(s.fromJson(r.temperature),s.fromJson(r.humidity),s.fromJson(r.continentalness),s.fromJson(r.erosion),s.fromJson(r.depth),s.fromJson(r.weirdness),null!==(n=k.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=i;class n{constructor(t,e,s,i,n,r){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,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 s=0;s<7;s+=1){const i=t.space[s];e+=Math.abs((i.min+i.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,s=-1,i=[];for(let n=0;n<7;++n){r.sort(t,n,!1),i=r.bucketize(t);let o=0;for(const t of i)o+=r.area(t.space);e>o&&(e=o,s=n)}return t=r.sort(t,s,!1),i=r.bucketize(t),i=r.sort(i,s,!0),new a(i.map((t=>r.build(t.children))))}static sort(t,e,s){return t.map((t=>{const i=t.space[e],n=(i.min+i.max)/2;return{key:s?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const i=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)s.push(n),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,i)=>e[i].union(s.space[i])));return e}search(t,e){let s=1/0,i=null;for(const n of this.children){const r=e(n,t);if(s<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);s<=a||(s=a,i=o)}return i}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(yt||(yt={}));class Rt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.biome))&&void 0!==s?s:\"minecraft:the_void\";return new Rt(n)}}class _t{constructor(t){this.parameters=t}getBiome(t,e,s,i){const n=i(t,e,s);return this.parameters.find(n)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=(null!==(s=k.readArray(i.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=k.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:yt.ParamPoint.fromJson(t.parameters)}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})})))&&void 0!==s?s:[]).map((t=>[t.parameters,()=>t.biome]));return new _t(new yt.Parameters(n))}}!function(t){function e(t){return h.apply(t)+.015}function s(t){return u.apply(t)}function i(t){return c.apply(t)}function n(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}t.offset=e,t.factor=s,t.peaks=i,t.peaksAndValleys=n,t.point=function(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:n(s)}},t.nearWater=function(t,e){return!(t<-.2)&&(t<-.05||Math.abs(e)<.15)},t.shape=function(t,n){return{offset:e(t),factor:s(t),peaks:i(t),nearWater:n}};const r=f(\"beachSpline\",-.15,-.05,0,0,.1,0,-.03,!1,!1),o=f(\"lowSpline\",-.1,-.1,.03,.1,.1,.01,-.03,!1,!1),a=f(\"midSpline\",-.1,-.1,.03,.1,.7,.01,-.03,!0,!0),l=f(\"highSpline\",-.05,.3,.03,.1,1,.01,.01,!0,!0),h=new Z(\"offsetSampler\",(t=>t.continents)).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,r).addPoint(-.15,r).addPoint(-.1,o).addPoint(.25,a).addPoint(1,l),u=new Z(\"Factor-Continents\",(t=>t.continents)).addPoint(-.19,505).addPoint(-.15,d(\"erosionCoast\",800,!0,\"ridgeCoast-OldMountains\")).addPoint(-.1,d(\"erosionInland\",700,!0,\"ridgeInland-OldMountains\")).addPoint(.03,d(\"erosionMidInland\",650,!0,\"ridgeMidInland-OldMountains\")).addPoint(.06,d(\"erosionFarInland\",600,!1,\"ridgeFarInland-OldMountains\")),c=new Z(\"Peaks\",(t=>t.continents)).addPoint(.1,0).addPoint(.2,new Z(\"Peaks-erosion\",(t=>t.erosion)).addPoint(-.8,new Z(\"Peaks-erosion-ridges\",(t=>t.ridges)).addPoint(-1,0).addPoint(.2,0).addPoint(1,new Z(\"Peaks-erosion-ridges-weirdness\",(t=>t.weirdness)).addPoint(-.01,80).addPoint(.01,20))).addPoint(-.4,0));function d(t,e,s,i){const n=new Z(t,(t=>t.erosion)).addPoint(-.6,e).addPoint(-.5,342).addPoint(-.35,e).addPoint(-.25,e).addPoint(-.1,342).addPoint(.03,e);if(s){const t=new Z(\"weirdnessShattered\",(t=>t.weirdness)).addPoint(0,e).addPoint(.1,80),s=new Z(\"ridgesShattered\",(t=>t.ridges)).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,s).addPoint(.55,s).addPoint(.62,e)}else{const t=new Z(i,(t=>t.ridges)).addPoint(-.7,e).addPoint(-.15,175),s=new Z(i,(t=>t.ridges)).addPoint(.45,e).addPoint(.7,200);n.addPoint(.05,s).addPoint(.4,s).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}function f(t,e,s,i,n,r,o,a,l,h){const u=g(N(r,.6,1.5),h),c=g(N(r,.6,1),h),d=g(r,h),f=v(t+\"-widePlateau\",e-.15,.5*r,N(.5,.5,.5)*r,.5*r,.6*r,.5),p=v(t+\"-narrowPlateau\",e,o*r,i*r,.5*r,.6*r,.5),m=v(t+\"-plains\",e,o,o,i,n,.5),b=v(t+\"-plainsFarInland\",e,o,o,i,n,.5),w=new Z(t,(t=>t.ridges)).addPoint(-1,e).addPoint(-.4,m).addPoint(0,n+.07),P=v(t+\"-swamps\",-.02,a,a,i,n,0),x=new Z(t,(t=>t.erosion)).addPoint(-.85,u).addPoint(-.7,c).addPoint(-.4,d).addPoint(-.35,f).addPoint(-.1,p).addPoint(.2,m);return l&&x.addPoint(.4,b).addPoint(.45,w).addPoint(.55,w).addPoint(.58,b),x.addPoint(.7,P),x}function g(t,e){const s=new Z(`M-spline for continentalness: ${t} ${e}`,(t=>t.ridges)),i=p(-1,t,-.7),n=p(1,t,-.7),r=function(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}(t);if(-.65t.ridges)).addPoint(-1,e,a).addPoint(-.4,s,Math.min(a,l)).addPoint(0,i,l).addPoint(.4,n,2*(n-i)).addPoint(1,r,.7*(r-n))}}(At||(At={}));class Ft{constructor(t,e,s,i,n,r){this.cellCountY=e,this.cellCountZ=s,this.cellMinY=n,this.filler=r,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.minCellX=i[0]*t,this.minCellZ=i[1]*s,this.slice0=Ft.allocateSlice(e,s),this.slice1=Ft.allocateSlice(e,s)}static allocateSlice(t,e){const s=Array(e+1);for(let i=0;i>2,o=s*this.cellWidth>>2,{offset:a,factor:l,peaks:h}=this.getTerrainShape(r,o),u=684.412*this.settings.sampling.xzScale,c=684.412*this.settings.sampling.yScale,d=u/this.settings.sampling.xzFactor,f=c/this.settings.sampling.yFactor;for(let r=0;r<=n;r+=1){const n=r+i,o=this.blendedNoise.sample(e,n,s,u,c,d,f),g=this.samplePeakNoise(h,e*this.cellHeight,s*this.cellHeight)/128,p=this.computeInitialDensity(n*this.cellHeight,a,l,0,g)+o;t[r]=this.applySlide(p,n)}}samplePeakNoise(t,e,s){if(0===t)return 0;const i=3e3/this.cellWidth,n=this.mountainPeakNoise.sample(e*i,0,s*i);return n>0?t*n:t/2*n}computeInitialDensity(t,e,s,i,n){const r=(Mt.computeDimensionDensity(this.settings.densityFactor,this.settings.densityOffset,t,i)+e+n)*s;return r*(r>0?4:1)}applySlide(t,e){const s=e-Math.floor(this.settings.minY/this.cellHeight);if(this.settings.topSlide.size>0){const e=(this.cellCountY-s-this.settings.topSlide.offset)/this.settings.topSlide.size;t=U(this.settings.topSlide.target,t,e)}if(this.settings.bottomSlide.size>0){const e=(s-this.settings.bottomSlide.offset)/this.settings.bottomSlide.size;t=U(this.settings.bottomSlide.target,t,e)}return t}static computeDimensionDensity(t,e,s,i=0){return t*(1-s/128+i)+e}}class Nt{constructor(t,e,s,i){this.seed=t,this.biomeSource=e,this.settings=s,this.cellHeight=s.noise.ySize<<2,this.cellWidth=s.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(s.noise.height/this.cellHeight),this.sampler=new Mt(this.cellWidth,this.cellHeight,this.cellCountY,e,s.noise,s.octaves,t,i)}fill(t){const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),i=Math.floor(e/this.cellHeight),n=Math.floor((s-e)/this.cellHeight),r=I.minBlockX(t.pos),o=I.minBlockZ(t.pos),a=new Ft(this.cellCountXZ,n,this.cellCountXZ,t.pos,i,this.sampler.fillNoiseColumn.bind(this.sampler)),l=Array(a);l.forEach((t=>t.initializeForFirstCellX()));for(let e=0;et.advanceCellX(e)));for(let s=0;s=0;u-=1){l.forEach((t=>t.selectCellYZ(u,s)));for(let n=this.cellHeight-1;n>=0;n-=1){const c=(i+u)*this.cellHeight+n,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=n/this.cellHeight;l.forEach((t=>t.updateForY(g)));for(let t=0;tt.updateForX(u)));for(let t=0;tt.swapSlices()))}}baseState(t,e,s,i){return(i=(i=M(i/200,-1,1))/2-i*i*i/24)>0?this.settings.defaultBlock:e{var e,s,i;return{distance:null!==(e=k.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(s=k.readInt(t.spread))&&void 0!==s?s:0,count:null!==(i=k.readInt(t.count))&&void 0!==i?i:0}})),structures:k.readMap(s.structures,(t=>{var e;return(t=>{var e,s,i;return{spacing:null!==(e=k.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(s=k.readInt(t.separation))&&void 0!==s?s:0,salt:null!==(i=k.readInt(t.salt))&&void 0!==i?i:0}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})}))}}}(It||(It={})),function(t){t.fromJson=function(t){var e;const s=null!==(e=k.readObject(t))&&void 0!==e?e:{};return{temperature:R.fromJson(s.temperature),humidity:R.fromJson(s.humidity),continentalness:R.fromJson(s.continentalness),erosion:R.fromJson(s.erosion),weirdness:R.fromJson(s.weirdness),shift:R.fromJson(s.shift)}}}(kt||(kt={}));export{Y as BlendedNoise,nt as BlockColors,lt as BlockDefinition,ft as BlockModel,o as BlockPos,B as BlockState,C as Chunk,I as ChunkPos,E as ChunkSection,yt as Climate,n as Direction,Rt as FixedBiome,V as ImprovedNoise,k as Json,_t as MultiNoise,h as NbtReader,u as NbtWriter,Nt as NoiseChunkGenerator,Ct as NoiseGeneratorSettings,Ft as NoiseInterpolator,kt as NoiseOctaves,R as NoiseParameters,Mt as NoiseSampler,Bt as NoiseSamplingSettings,St as NoiseSettings,Et as NoiseSlideSettings,X as NormalNoise,j as PerlinNoise,H as PerlinSimplexNoise,W as Random,z as SimplexNoise,Z as Spline,_ as Structure,wt as StructureRenderer,It as StructureSettings,At as TerrainShaper,xt as TextureAtlas,J as WorldgenRandom,L as binarySearch,M as clamp,U as clampedLerp,A as getListTag,S as getOptional,y as getTag,N as lerp,T as lerp2,O as lerp3,f as read,p as readChunk,d as readCompressed,g as readRegion,c as readUncompressed,D as smoothstep,F as square,l as tagNames,a as tagTypes,b as write,P as writeChunk,v as writeCompressed,w as writeRegion,m as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?: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]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n"],"names":["n","u","i","t","r","f","e","n2","l2","u2","parentNode","removeChild","i2","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","n$1","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","getDerivedStateFromError","setState","componentDidCatch","k","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$12","charAt","param","flags","plus","star","val","map","default","rank","index","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","splice","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","o","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema","options","_b","_c","_d","historyMax","verbose","wrapLists","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode","cases","activeCase","concat","fallback","sorter","priority","matchedCases","ListNode_1","SwitchNode_1","choices","switchNode","choice","isValid","XOrList","ChoiceNode","change","presetNode","objectNode","presets","keys","MapNode","validation","NumberNode","integer","color","Number","isInteger","number","Node_12","Path_12","Errors_12","utils_12","require$$3","DataModel_12","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","includes","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","values","string","Hook","Registries","registry","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Name","Properties","Opt","level","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","count","durability","potion","nbt","enchantments","levels","fluid","position","biome","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","distance","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","to","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Condition","ObjectOrList","condition","ConditionCases","LootContext","Map","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","source","minecraft:copy_nbt","ops","getter","op","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","result","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","interpret","schemas","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","__esModule","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","size","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","settings","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","scale","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","structures","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","axis","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","stronghold","spacing","separation","salt","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","elements","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","noodle_caves_enabled","ore_veins_enabled","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","octaves","erosion","continentalness","minecraft:weighted_list","distribution","minecraft:set_potion","use_legacy_random","ClimateParameter","minecraft:block_filter","minecraft:block_survives_filter","minecraft:environment_scan","direction_of_search","max_steps","target_condition","minecraft:surface_relative_threshold","xz_spread","y_spread","only_in_air","allowed_on","disallowed_on","minecraft:block_column","prioritize_tip","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","minecraft:all_of","predicates","minecraft:any_of","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset","buf","len","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","flush","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next","deflateInfo","_has","common","sources","TypeError","chunks","chunk","STR_APPLY_UIA_OK","fromCharCode","apply","_utf8len","q2","strings","TextEncoder","encode","c22","m_pos","str_len","buf_len","TextDecoder","decode","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","Error","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","fill","low","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","done","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","UP","DOWN","NORTH","EAST","SOUTH","WEST","R","rt","yt","At","St","Bt","Et","Ct","It","kt","ALL","normal","towards","S","e3","B","readObject","readString","readMap","AIR","minY","E","SIZE","palette","findIndex","WIDTH","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","N","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","readNumber","readInt","readBoolean","readArray","t4","fromEntries","compose","xo","nextDouble","yo","zo","nextInt","F2","G2","getCornerNoise3D","S2","B2","E2","C2","I2","R2","gradDot","GRADIENT","sqrt","sampleAndLerp","O","D","noiseLevels","V","consume","lowestFreqInputFactor","pow","lowestFreqValueFactor","sample","minLimitNoise","maxLimitNoise","mainNoise","i3","getOctaveNoise","i4","c3","r3","o3","U","first","second","valueFactor","X","INPUT_FACTOR","fromJson","setSeed","W","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","coordinate","locations","derivatives","rotate","up","down","north","east","south","west","s3","a3","Param","F","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","Rt","find","_t","factor","peaks","peaksAndValleys","point","continents","ridges","nearWater","Z","addPoint","t5","h2","d3","f3","p3","m3","cellCountY","cellCountZ","cellMinY","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","minCellX","minCellZ","slice0","Ft","allocateSlice","slice1","fillSlice","cellWidth","cellHeight","biomeSource","shapeOverride","useLegacyRandom","fork","blendedNoise","Y","temperatureNoise","J","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","mountainPeakNoise","getOffset","Mt","computeDimensionDensity","getTerrainShape","xzScale","xzFactor","yFactor","samplePeakNoise","computeInitialDensity","applySlide","densityFactor","densityOffset","topSlide","bottomSlide","ySize","xzSize","cellCountXZ","sampler","fillNoiseColumn","initializeForFirstCellX","advanceCellX","selectCellYZ","minBlockY","updateForY","n4","updateForX","u4","calculateValue","baseState","swapSlices","defaultBlock","seaLevel","defaultFluid","displayName","isReactComponent","__f","useSimplexSurfaceNoise","randomDensityOffset","islandNoiseOverride","isAmplified","bedrockRoofPosition","bedrockFloorPosition","disableMobGeneration","aquifersEnabled","noiseCavesEnabled","deepslateEnabled","oreVeinsEnabled","noodleCavesEnabled","isPureReactComponent","__u","__R","__O","delete","revealOrder","reverse","for","configurable","writable","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","G","class","multiple","selected","defaultValue","className","$$typeof","K","performance","now"],"mappings":"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qB,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,eACA,aACA,mBAEQA,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,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCtRDrO,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1B4R,QAAgBA,sBAAyB,QAC/D0I,EAASnL,gCACY0I,EAASO,SAC1BmC,EAAaD,EAAOvC,WAAW7S,UAAK,EAAWkT,GAC/CoC,EAAYF,EAAO1C,UAAU1S,UAAK,EAAW2S,KAC3CwC,SAAS,cAAeC,EAAO5H,IAAI4H,EAAOG,WAAW,C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Ef0uB,GAAgBnyB,IAAQA,GAAKmyB,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BtE,EAAS,MACF,MAAPsE,UAAsB3wB,KAAK2wB,EAAe,YAAN3wB,GAAmBoK,OAAO+P,eAAelW,KAAK0sB,EAAK3wB,OAAoBqsB,EAAQsE,EAAK3wB,aACzGqsB,EAAQsE,GACpBtE,GAEXjiB,OAAOuC,eAAekkB,GAAS,aAAc,CAAElwB,OAAO,IACtD,4CAA8C,EAC9C,MAAMihB,GAAS9R,GACTghB,GAAgB/gB,GAChBghB,GAAY9gB,GAClB,sBAAsBygB,GAAaja,IAMnC,yBALA,iBACUsC,EAAc,IAAI6I,GAAOoP,6BACjBC,gBAAgBlY,GACvBA,GAsBXmY,iBALA,SAAoBnY,SACVP,EAAU,IAAIoJ,GAAOuP,yBACjBC,YAAY5Y,EAASO,GACxBP,iMChDXpO,OAAOuC,eAAeoO,GAAS,aAAc,CAAEpa,OAAO,4BAC5B,qBAC1B,SAAyBoY,KACTiC,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,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,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,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,QACA,UACA,QACA,QACA,cAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBA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B,sBAAsBygB,GAAaja,IAMnC,yBALA,iBACUsC,EAAc,IAAI6I,GAAOoP,6BACjBC,gBAAgBlY,GACvBA,GAsBXmY,iBALA,SAAoBnY,SACVP,EAAU,IAAIoJ,GAAOuP,yBACjBC,YAAY5Y,EAASO,GACxBP,iMChDXpO,OAAOuC,eAAeoO,GAAS,aAAc,CAAEpa,OAAO,4BAC5B,qBAC1B,SAAyBoY,KACTiC,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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ACA,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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"} \ No newline at end of file diff --git a/assets/vendor.e4f625be.js b/assets/vendor.e4f625be.js deleted file mode 100644 index ccbdb4b1..00000000 --- a/assets/vendor.e4f625be.js +++ /dev/null @@ -1,3 +0,0 @@ -var e,t,r,o,i=Object.defineProperty,a=Object.defineProperties,n=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m=(e,t)=>{for(var r in t||(t={}))c.call(t,r)&&d(e,r,t[r]);if(s)for(var r of s(t))l.call(t,r)&&d(e,r,t[r]);return e},_=(e,t)=>a(e,n(t)),p=e=>"symbol"==typeof e?e:e+"",u={},f=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(e,t){for(var r in t)e[r]=t[r];return e}function g(e){var t=e.parentNode;t&&t.removeChild(e)}function v(e,t,r){var o,i,a,n=arguments,s={};for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:s[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a0?y(p.type,p.props,p.key,null,p.__v):p)){if(p.__=r,p.__b=r.__b+1,null===(_=v[d])||_&&p.key==_.key&&p.type===_.type)v[d]=void 0;else for(m=0;mt.rank?-1:e.index-t.index}function H(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,W(t).map(X).join(""));var t}(e),e.props}function W(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function X(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,J=[],K=[],G={};function V(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:G).pathname||"")+(e.search||"")}function Q(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=J.length;t--;)if(J[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ee(e)}function ee(e){for(var t=!1,r=0;r0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){J.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),J.splice(J.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,r){return e.filter(H).sort(Z).map((function(e){var o=q(t,e.props.path,e.props);if(o){if(!1!==r){var i={url:t,matches:o};return U(i,o),delete i.ref,delete i.key,function(e,t,r){var o,i,a,n=arguments,s=b({},e.props);for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:s[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a=o.__.length&&o.__.push({}),o.__[t]}function ve(e){return me=1,function(e,t,r){var o=ge(ce++,2);return o.t=e,o.__c||(o.__=[r?r(t):Le(void 0,t),function(e){var t=o.t(o.__[0],e);o.__[0]!==t&&(o.__=[t,o.__[1]],o.__c.setState({}))}],o.__c=le),o.__}(Le,e)}function ye(t,r){var o=ge(ce++,3);!e.__s&&Pe(o.__H,r)&&(o.__=t,o.__H=r,le.__H.__h.push(o))}function Ne(e){return me=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var r=ge(ce++,7);return Pe(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function ke(e,t){return me=8,Oe((function(){return e}),t)}function we(e){var t=ge(ce++,10),r=ve();return t.__=e,le.componentDidCatch||(le.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function xe(){_e.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(Se),t.__H.__h.forEach(Me),t.__H.__h=[]}catch(r){t.__H.__h=[],e.__e(r,t.__v)}})),_e=[]}e.__b=function(e){le=null,pe&&pe(e)},e.__r=function(e){ue&&ue(e),ce=0;var t=(le=e.__c).__H;t&&(t.__h.forEach(Se),t.__h.forEach(Me),t.__h=[])},e.diffed=function(t){fe&&fe(t);var r=t.__c;r&&r.__H&&r.__H.__h.length&&(1!==_e.push(r)&&de===e.requestAnimationFrame||((de=e.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(o),je&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(r,100);je&&(t=requestAnimationFrame(r))})(xe)),le=void 0},e.__c=function(t,r){r.some((function(t){try{t.__h.forEach(Se),t.__h=t.__h.filter((function(e){return!e.__||Me(e)}))}catch(o){r.some((function(e){e.__h&&(e.__h=[])})),r=[],e.__e(o,t.__v)}})),he&&he(t,r)},e.unmount=function(t){be&&be(t);var r=t.__c;if(r&&r.__H)try{r.__H.__.forEach(Se)}catch(o){e.__e(o,r.__v)}};var je="function"==typeof requestAnimationFrame;function Se(e){var t=le;"function"==typeof e.__c&&e.__c(),le=t}function Me(e){var t=le;e.__c=e.__(),le=t}function Pe(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Le(e,t){return"function"==typeof t?t(e):t}var Ce="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Be={},ze={},Re={};Object.defineProperty(Re,"__esModule",{value:!0}),Re.ModelPath=Re.Path=Re.relativePath=void 0,Re.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ae{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 Ae(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ae(this.modelArr.slice(1),this.contextArr)}pop(){return new Ae(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ae([...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 Ae([...this.modelArr],[...this.contextArr,t])}copy(){return new Ae([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Ie(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,r)=>e===this.modelArr[t+r]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Re.Path=Ae;class Ie extends Ae{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 Ie(this.model,super.slice(e,t))}shift(){return new Ie(this.model,super.shift())}pop(){return new Ie(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie(this.model,super.modelPush(e))}contextPush(e){return new Ie(this.model,super.contextPush(e))}copy(){return new Ie(this.model,super.copy())}}Re.ModelPath=Ie;var Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.Errors=void 0;class De{constructor(){this.errors=[]}add(e,t,...r){return this.errors.push({path:e,error:t,params:r}),!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}}Te.Errors=De;var Ee={};function Fe(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.hexId=Ee.quoteString=Ee.escapeString=void 0,Ee.escapeString=Fe,Ee.quoteString=function(e){return`"${Fe(e)}"`};const $e=e=>("0"+e.toString(16)).substr(-2);Ee.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,$e).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Ue=Re,qe=Te,Ze=Ee;class He{constructor(e,t){var r,o,i,a;this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50,this.verbose=null!==(o=null==t?void 0:t.verbose)&&void 0!==o&&o,this.wrapLists=null!==(i=null==t?void 0:t.wrapLists)&&void 0!==i&&i,this.schema=e;const n=null!==(a=null==t?void 0:t.initialData)&&void 0!==a?a:e.default();this.data=this.wrapLists?He.wrapLists(n):n,this.listeners=[],this.errors=new qe.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,r){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach((e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(this.wrapLists&&"number"==typeof e?o[e]={node:{},id:Ze.hexId()}:o[e]={}),o=this.wrapLists&&"number"==typeof e?o[e].node:o[e]})),null!==o&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:this.wrapLists&&"number"==typeof e.last()?o[e.last()]={node:t,id:Ze.hexId()}:o[e.last()]=t,r||(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(o)}))}static wrapLists(e){if(Array.isArray(e))return e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)})),t}return e}}ze.DataModel=He;var We,Xe={};We=Xe,Object.defineProperty(We,"__esModule",{value:!0}),We.Keep=We.Opt=We.Has=We.Mod=We.Base=void 0,We.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,...r){return e.base({node:this},t,...r)},canUpdate:()=>!1,update:()=>[]},We.Mod=(e,t)=>m(m({},e),"function"==typeof t?t(e):t),We.Has=(e,t)=>We.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),We.Opt=function(e){return _(m({},e),{optional:()=>!0})},We.Keep=function(e){return _(m({},e),{keep:()=>!0})};var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.BooleanNode=void 0;const Je=ze,Ke=Xe;Ye.BooleanNode=()=>_(m({},Ke.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,o){return o.loose&&"boolean"!=typeof t&&(t=o.wrapLists?Je.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...r)}});var Ge={},Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.ListNode=void 0;const Qe=ze,et=Xe;Ve.ListNode=(e,t)=>{var r,o;const i=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,a=null!==(o=null==t?void 0:t.maxLength)&&void 0!==o?o:1/0,n=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return _(m({},et.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(i)].map((t=>e.default())):[],navigate(t,r){const o=r+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,o,s){return s.loose&&!Array.isArray(r)&&(r=s.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),Array.isArray(r)?(n&&(r.lengtha)?i===a?o.add(t,"error.invalid_list_range.exact",r.length,i):o.add(t,"error.invalid_list_range.between",r.length,i,a):r.lengtha&&o.add(t,"error.invalid_list_range.larger",r.length,a),r.map(((r,i)=>{const a=e.validate(t.push(i),s.wrapLists?r.node:r,o,s);return s.wrapLists?{node:a,id:r.id}:a}))):(o.add(t,"error.expected_list"),r)},hook(r,o,...i){var a;return(null!==(a=r.list)&&void 0!==a?a:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},o,...i)}})};var tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.SwitchNode=void 0;const rt=Xe;tt.SwitchNode=e=>_(m({},rt.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 r;const o=t+1;return null===(r=this.activeCase(e.slice(0,o)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,o;return null!==(o=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,r){var o,i;return null!==(i=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,r))&&void 0!==i?i:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,o){let i=this.activeCase(e);return void 0===i?t:i.node.validate(e,t,r,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const o=(e,t)=>{var r,o;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},i=e.filter((e=>e.match(t))).sort(o);return r&&0===i.length?e.sort(o)[0]:i.length>0?i[0]:void 0},hook(e,t,...r){return this.activeCase(t,!0).node.hook(e,t,...r)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=Ve,r=tt,o=ze;e.ChoiceNode=(e,t)=>{const o=r.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 _(m({},o),{validate(e,t,r,i){let a=o.activeCase(e,!0);return a.node.optional()?t:a.node.validate(e,t,r,i)},hook(r,i,...a){var n;return(null!==(n=r.choice)&&void 0!==n?n:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:o},i,...a)}})};const i=r=>(i,a)=>e.ChoiceNode([{type:r,node:i,change:(e,t)=>{var r;return null!==(r=e[0])&&void 0!==r?r:(null==t?void 0:t.wrapLists)?o.DataModel.wrapLists(i.default()):i.default()}},{type:"list",node:t.ListNode(i),change:e=>e?[e]:[]}],a);e.ObjectOrList=i("object"),e.StringOrList=i("string"),e.ObjectOrPreset=(t,r,o)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(o)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])}(Ge);var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.MapNode=void 0;const it=Xe,at=ze;ot.MapNode=(e,t,r)=>_(m({},it.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const o=r+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,o,i,a){if(a.loose&&"object"!=typeof o&&(o=a.wrapLists?at.DataModel.wrapLists(this.default()):this.default()),null===o||"object"!=typeof o)return i.add(r,"error.expected_object"),o;let n={};return Object.keys(o).forEach((s=>{e.validate(r,s,i,a),n[s]=t.validate(r.push(s),o[s],i,a)})),n},validationOption(t){var o;return null!==(o=null==r?void 0:r.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,i,...a){var n;return(null!==(n=o.map)&&void 0!==n?n:o.base).call(o,{node:this,keys:e,children:t,config:null!=r?r:{}},i,...a)}});var nt={};Object.defineProperty(nt,"__esModule",{value:!0}),nt.NumberNode=void 0;const st=ze,ct=Xe;nt.NumberNode=e=>{var t,r,o;const i=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,n=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,s=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return _(m({},ct.Base),{type:()=>"number",default:()=>a>0?a:0,validate(e,t,r,o){return o.loose&&"number"!=typeof t&&(t=o.wrapLists?st.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?r.add(e,"error.expected_number"):i&&!Number.isInteger(t)?r.add(e,"error.expected_integer"):s&&(tn)?r.add(e,"error.invalid_number_range.between",t,a,n):tn&&r.add(e,"error.invalid_number_range.larger",t,n),t},hook(t,r,...o){var c;return(null!==(c=t.number)&&void 0!==c?c:t.base).call(t,{node:this,integer:i,min:a,max:n,between:s,config:null!=e?e:{}},r,...o)}})};var lt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Xe,r=Re,o=Te,i=Ee,a=ze;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(n,d)=>{var u,f;const h=n,{[u=e.Switch]:b,[f=e.Case]:g}=h,v=((e,t)=>{var r={};for(var o in e)c.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&s)for(var o of s(e))t.indexOf(o)<0&&l.call(e,o)&&(r[o]=e[o]);return r})(h,[p(u),p(f)]),y=e=>{if(void 0===b)return v;const t=r.relativePath(e,b).get(),o=g[t];return m(m({},v),o)},N=(e,t)=>{var o;const i=b?r.relativePath(e,b).get():void 0,a=b&&null!==(o=g[i])&&void 0!==o?o:{},n=Object.keys(a),s=(null==d?void 0:d.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[d.context])):e;return(!(null==d?void 0:d.disableSwitchContext)&&i&&n.includes(t)?s.contextPush(i):s).push(t)};return _(m({},t.Base),{type:()=>"object",category:()=>null==d?void 0:d.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,o=e.getArray();if(o.length<=r)return this;const i=y(e.slice(0,r))[o[r]];return null==i?void 0:i.navigate(e,r)},pathPush:(e,t)=>N(e,t.toString()),suggest(e,t){const r=y(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!o.includes(e))).map(i.quoteString)},validate(e,t,i,n){if(n.loose&&"object"!=typeof t&&(t=n.wrapLists?a.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return i.add(e,"error.expected_object"),t;let s=v;if(b){const i=r.relativePath(e,b);let a=i.get();if(e.equals(i.pop())){const r=i.last();a=v[r].validate(e.push(r),t[r],new o.Errors,n)}s=m(m({},s),g[a])}const c=Object.keys(s),l=c.filter((e=>!s[e].optional())),d=new Set([...l,...Object.keys(t)]);let _={};return d.forEach((r=>{if(c.includes(r)){if(!s[r].enabled(e))return;const o=s[r].validate(e.push(r),t[r],i,n);!s[r].keep()&&s[r].optional()&&(void 0===o||Array.isArray(o)&&0===o.length||o.constructor===Object&&0===Object.keys(o).length)?delete _[r]:(_[r]=o,e.getModel().set(e.push(r),o,!0))}else _[r]=t[r]})),_},hook(e,t,...r){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:v,config:null!=d?d:{},filter:b,cases:g,getActiveFields:y,getChildModelPath:N},t,...r)}})}}(lt);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.Reference=void 0,dt.Reference=(e,t)=>({type(r){return e.get(t).type.bind(this)(r)},category(r){return e.get(t).category.bind(this)(r)},default(){return e.get(t).default.bind(this)()},transform:(r,o)=>e.get(t).transform(r,o),enabled(r){return e.get(t).enabled.bind(this)(r)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(r,o){return e.get(t).navigate.bind(this)(r,o)},pathPush(r,o){return e.get(t).pathPush.bind(this)(r,o)},suggest(r,o){return e.get(t).suggest.bind(this)(r,o)},validate(r,o,i,a){return e.get(t).validate.bind(this)(r,o,i,a)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,o,...i){return e.get(t).hook.bind(this)(r,o,...i)},activeCase(r,o){return e.get(t).activeCase.bind(this)(r,o)},canUpdate(r,o){return e.get(t).canUpdate.bind(this)(r,o)},update(r,o){return e.get(t).update.bind(this)(r,o)}});var mt={};Object.defineProperty(mt,"__esModule",{value:!0}),mt.StringNode=void 0;const _t=Xe,pt=Ee,ut=ze,ft=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},ht=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};mt.StringNode=(e,t)=>{const r=ft(t)?"string"==typeof t.enum?()=>{var r;return null!==(r=null==e?void 0:e.get(t.enum))&&void 0!==r?r:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==r?r:[]}:()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool))&&void 0!==r?r:[]}:()=>t.params.pool:()=>[];return _(m({},_t.Base),{type:()=>"string",default:()=>"",validate(e,o,i,a){if(a.loose&&"string"!=typeof o&&(o=(a.wrapLists?ut.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof o)return i.add(e,"error.expected_string"),o;if(ht(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(ft(t)&&t.additional)return o;const n=r();return n.length>0&&!n.includes(o)&&i.add(e,"error.invalid_enum_option",o),o},suggest:()=>r().map(pt.quoteString),validationOption:()=>ht(t)?t:void 0,hook(e,o,...i){var a;return(null!==(a=e.string)&&void 0!==a?a:e.base).call(e,{node:this,getValues:r,config:t},o,...i)}})};var bt={};Object.defineProperty(bt,"__esModule",{value:!0});var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.CollectionRegistry=gt.SchemaRegistry=void 0;gt.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}};gt.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 vt={};Object.defineProperty(vt,"__esModule",{value:!0}),function(e){var t=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=Ce&&Ce.__exportStar||function(e,r){for(var o in e)"default"===o||r.hasOwnProperty(o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),r(ze,e),r(Re,e),r(Te,e),r(Xe,e),r(Ye,e),r(Ge,e),r(Ve,e),r(ot,e),r(nt,e),r(lt,e),r(dt,e),r(mt,e),r(tt,e),r(bt,e),r(gt,e),r(vt,e)}(Be);var yt={},Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.initCollections=void 0,Nt.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["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("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("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("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 Ot={},kt={},wt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Range=e.ConditionCases=void 0;const t=Be;e.initCommonSchemas=function(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.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,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o: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:i({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,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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())}}}}(wt);var xt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Be,r=wt;e.initPredicatesSchemas=function(o,i){const a=t.Reference.bind(void 0,o),n=t.StringNode.bind(void 0,i),s=t.ChoiceNode([{type:"string",node:n(),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}]);o.register("item_predicate",t.ObjectNode({item:t.Opt(n({validator:"resource",params:{pool:"item"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(r.Range()),durability:t.Opt(r.Range()),potion:t.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(a("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(r.Range())},{context:"enchantment"})),o.register("block_predicate",t.ObjectNode({block:t.Opt(n({validator:"resource",params:{pool:"block"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(n(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(n(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range())})),biome:t.Opt(n({enum:"biome"})),feature:t.Opt(n({enum:"structure_feature"})),dimension:t.Opt(n({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(r.Range({integer:!0,min:0,max:15}))})),block:t.Opt(a("block_predicate")),fluid:t.Opt(a("fluid_predicate"))},o.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),o.register("statistic_predicate",t.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[t.Switch]:[{push:"type"}],[t.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"}})}}})),o.register("player_predicate",t.ObjectNode({gamemode:t.Opt(n({enum:"gamemode"})),level:t.Opt(r.Range()),advancements:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(n(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(a("statistic_predicate")))},{context:"player"})),o.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(r.Range()),duration:t.Opt(r.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),o.register("distance_predicate",t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range()),absolute:t.Opt(r.Range()),horizontal:t.Opt(r.Range())},{context:"distance"})),o.register("entity_predicate",t.ObjectNode({type:t.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(n({validator:"team"})),location:t.Opt(a("location_predicate")),distance:t.Opt(a("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(n({enum:"slot"}),a("item_predicate"))),player:t.Opt(a("player_predicate")),effects:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),a("status_effect_predicate")))},{context:"entity"})),o.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(a("entity_predicate")),direct_entity:t.Opt(a("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",t.ObjectNode({dealt:t.Opt(r.Range()),taken:t.Opt(r.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(a("entity_predicate")),type:t.Opt(a("damage_source_predicate"))},{context:"damage"}))}}(xt),Object.defineProperty(kt,"__esModule",{value:!0}),kt.initAdvancementSchemas=void 0;const jt=Be,St=wt,Mt=xt;kt.initAdvancementSchemas=function(e,t){const r=jt.Reference.bind(void 0,e),o=jt.StringNode.bind(void 0,t);e.register("advancement",jt.Mod(jt.ObjectNode({display:jt.Opt(jt.Mod(jt.ObjectNode({icon:jt.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:jt.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:jt.Opt(o()),frame:jt.Opt(o({enum:["task","challenge","goal"]})),show_toast:jt.Opt(jt.BooleanNode()),announce_to_chat:jt.Opt(jt.BooleanNode()),hidden:jt.Opt(jt.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:jt.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:jt.MapNode(o(),r("advancement_criteria")),requirements:jt.Opt(jt.ListNode(jt.ListNode(o()))),rewards:jt.Opt(jt.ObjectNode({function:jt.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:jt.Opt(jt.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:jt.Opt(jt.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:jt.Opt(jt.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",jt.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:jt.Opt(jt.ObjectNode({[jt.Switch]:["pop",{push:"trigger"}],[jt.Case]:{"minecraft:bee_nest_destroyed":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:jt.Opt(jt.NumberNode({integer:!0})),item:jt.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:jt.Opt(r("entity_predicate")),partner:jt.Opt(r("entity_predicate")),child:jt.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:jt.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:jt.Opt(o({enum:"dimension"})),to:jt.Opt(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:jt.Opt(jt.ListNode(jt.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:jt.Opt(St.Range())},"minecraft:consume_item":{item:jt.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:jt.Opt(r("entity_predicate")),zombie:jt.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:jt.Opt(jt.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),state:jt.Opt(jt.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:jt.Opt(St.Range()),item:jt.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:jt.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:jt.Opt(r("entity_predicate")),killing_blow:jt.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:jt.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:jt.Opt(r("entity_predicate")),item:jt.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Mt.LocationFields,"minecraft:inventory_changed":{slots:jt.Opt(jt.ObjectNode({empty:jt.Opt(St.Range()),occupied:jt.Opt(St.Range()),full:jt.Opt(St.Range())})),items:jt.Opt(jt.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:jt.Opt(St.Range()),durability:jt.Opt(St.Range()),item:jt.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:jt.Opt(St.Range()),victims:jt.Opt(jt.ListNode(jt.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:jt.Opt(St.Range()),duration:jt.Opt(St.Range())},"minecraft:location":Mt.LocationFields,"minecraft:nether_travel":{distance:jt.Opt(St.Range()),entered:jt.Opt(r("location_predicate")),exited:jt.Opt(r("location_predicate"))},"minecraft:placed_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),state:jt.Opt(jt.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:jt.Opt(r("item_predicate")),location:jt.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:jt.Opt(r("damage_predicate")),entity:jt.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:jt.Opt(r("entity_predicate")),killing_blow:jt.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:jt.Opt(jt.ObjectNode({block:jt.Opt(o({validator:"resource",params:{pool:"block"}})),tag:jt.Opt(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:jt.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Mt.LocationFields,"minecraft:slide_down_block":{block:jt.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:jt.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:jt.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:jt.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:jt.Opt(St.Range())},"minecraft:used_totem":{item:jt.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:jt.Opt(r("entity_predicate")),item:jt.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Mt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initConditionSchemas=void 0;const Lt=Be,Ct=wt;Pt.initConditionSchemas=function(e,t){const r=Lt.Reference.bind(void 0,e),o=Lt.StringNode.bind(void 0,t);e.register("predicate",Lt.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Lt.Mod(Lt.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Lt.Switch]:[{push:"condition"}],[Lt.Case]:Ct.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Bt={},zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.LootFunctions=zt.LootConditions=zt.LootCopySources=zt.LootEntitySources=zt.LootTableTypes=void 0,zt.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]}]]),zt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),zt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),zt.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",[]]]),zt.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(Bt,"__esModule",{value:!0}),Bt.initLootTableSchemas=void 0;const Rt=Be,At=zt,It=wt;Bt.initLootTableSchemas=function(e,t){const r=Rt.Reference.bind(void 0,e),o=Rt.StringNode.bind(void 0,t),i={conditions:Rt.Opt(Rt.ListNode(r("loot_condition")))},a=m({functions:Rt.Opt(Rt.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of At.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Rt.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Rt.SwitchNode(i)}const s=n(At.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(At.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(At.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(At.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Rt.Mod(Rt.ObjectNode({type:Rt.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Rt.Opt(Rt.ListNode(Rt.Mod(Rt.ObjectNode(m({rolls:It.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Rt.Opt(It.Range({integer:!0})),entries:Rt.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Rt.Opt(Rt.ListNode(r("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",Rt.Mod(Rt.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Rt.Opt(Rt.Mod(Rt.NumberNode({integer:!0,min:1}),p)),quality:Rt.Opt(Rt.Mod(Rt.NumberNode({integer:!0}),p)),[Rt.Switch]:[{push:"type"}],[Rt.Case]:{"minecraft:alternatives":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Rt.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Rt.Opt(Rt.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Rt.Mod(Rt.ObjectNode({function:c,[Rt.Switch]:[{push:"function"}],[Rt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Rt.Mod(Rt.ObjectNode({bonusMultiplier:Rt.Mod(Rt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Rt.Mod(Rt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Rt.Mod(Rt.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:d},"minecraft:copy_nbt":{source:d,ops:Rt.ListNode(Rt.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:Rt.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Rt.Opt(Rt.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:It.Range({allowBinomial:!0}),treasure:Rt.Opt(Rt.BooleanNode())},"minecraft:exploration_map":{destination:Rt.Opt(o({enum:"structure_feature"})),decoration:Rt.Opt(o({enum:"map_decoration"})),zoom:Rt.Opt(Rt.NumberNode({integer:!0})),search_radius:Rt.Opt(Rt.NumberNode({integer:!0})),skip_existing_chunks:Rt.Opt(Rt.BooleanNode())},"minecraft:fill_player_head":{entity:l},"minecraft:limit_count":{limit:It.Range({bounds:!0})},"minecraft:looting_enchant":{count:It.Range({bounds:!0}),limit:Rt.Opt(Rt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Rt.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Rt.ListNode(r("loot_entry"))},"minecraft:set_count":{count:It.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:It.Range({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:Rt.Opt(Rt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Rt.Opt(l),lore:Rt.ListNode(r("text_component")),replace:Rt.Opt(Rt.BooleanNode())},"minecraft:set_name":{entity:Rt.Opt(l),name:Rt.Opt(r("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Rt.Opt(Rt.ListNode(Rt.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:It.Range()})))}},a={};return t.get("loot_function_type").forEach((t=>{a[t]=m(m({},e[t]),i)})),a})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Rt.Mod(Rt.ObjectNode({condition:s,[Rt.Switch]:[{push:"condition"}],[Rt.Case]:_(m({},It.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:Rt.MapNode(o({validator:"objective"}),It.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Rt.Mod(Rt.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:It.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Rt.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Tt={};Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.initPackMcmetaSchemas=void 0;const Dt=Be;Tt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Dt.Mod(Dt.ObjectNode({pack:Dt.Mod(Dt.ObjectNode({pack_format:Dt.Mod(Dt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Dt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Et={};Object.defineProperty(Et,"__esModule",{value:!0}),Et.initRecipeSchemas=void 0;const Ft=Be;Et.initRecipeSchemas=function(e,t){const r=Ft.Reference.bind(void 0,e),o=Ft.StringNode.bind(void 0,t);e.register("recipe",Ft.Mod(Ft.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Ft.Switch]:[{push:"type"}],[Ft.Case]:{"minecraft:crafting_shaped":{group:Ft.Opt(o({enum:"recipe_group",additional:!0})),pattern:Ft.ListNode(o()),key:Ft.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Ft.Opt(o()),ingredients:Ft.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Ft.Opt(Ft.NumberNode()),cookingtime:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Ft.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Ft.NumberNode({integer:!0})},"minecraft:smithing":{group:Ft.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Ft.Mod(Ft.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Ft.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Ft.Mod(Ft.ObjectNode({item:Ft.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Ft.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Ft.Mod(Ft.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Ft.Opt(Ft.Mod(Ft.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var $t={};Object.defineProperty($t,"__esModule",{value:!0}),$t.initTagsSchemas=void 0;const Ut=Be;$t.initTagsSchemas=function(e,t){const r=Ut.StringNode.bind(void 0,t),o=e=>Ut.Mod(Ut.ObjectNode({replace:Ut.Opt(Ut.BooleanNode()),values:Ut.ListNode(Ut.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ut.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ut.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.initTextComponentSchemas=void 0;const Zt=Be;qt.initTextComponentSchemas=function(e,t){const r=Zt.Reference.bind(void 0,e),o=Zt.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",Zt.Mod(Zt.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:Zt.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Zt.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:Zt.Opt(Zt.BooleanNode()),italic:Zt.Opt(Zt.BooleanNode()),underlined:Zt.Opt(Zt.BooleanNode()),strikethrough:Zt.Opt(Zt.BooleanNode()),obfuscated:Zt.Opt(Zt.BooleanNode()),insertion:Zt.Opt(o()),clickEvent:Zt.Opt(Zt.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Zt.Switch]:[{push:"action"}],[Zt.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Zt.Opt(Zt.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[Zt.Switch]:[{push:"action"}],[Zt.Case]:{show_text:{value:Zt.Opt(r("text_component"))},show_item:{value:Zt.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:Zt.Opt(Zt.ObjectNode({name:Zt.Opt(o()),type:Zt.Opt(o()),id:Zt.Opt(o())}))}}})),extra:Zt.Opt(r("text_component_list"))};e.register("text_component_object",Zt.Mod(Zt.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Zt.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Zt.ObjectNode(m({translate:o(),with:Zt.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Zt.ObjectNode(m({score:Zt.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:Zt.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Zt.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Zt.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Zt.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:Zt.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Zt.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Zt.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:Zt.Opt(Zt.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Zt.Mod(Zt.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.initSchemas=void 0;const Ht=kt,Wt=wt,Xt=Pt,Yt=Bt,Jt=Tt,Kt=xt,Gt=Et,Vt=$t,Qt=qt;Ot.initSchemas=function(e,t){Wt.initCommonSchemas(e,t),Kt.initPredicatesSchemas(e,t),Ht.initAdvancementSchemas(e,t),Xt.initConditionSchemas(e,t),Yt.initLootTableSchemas(e,t),Jt.initPackMcmetaSchemas(e,t),Gt.initRecipeSchemas(e,t),Vt.initTagsSchemas(e,t),Qt.initTextComponentSchemas(e,t)};var er=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),tr=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),rr=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&er(t,e,r);return tr(t,e),t};Object.defineProperty(yt,"__esModule",{value:!0});var or=yt.getSchemas=yt.getCollections=void 0;const ir=Be,ar=Nt,nr=Ot;var sr=yt.lootContext=rr(zt);var cr=yt.getCollections=function(){const e=new ir.CollectionRegistry;return ar.initCollections(e),e};or=yt.getSchemas=function(e){const t=new ir.SchemaRegistry;return nr.initSchemas(t,e),t};var lr=Object.freeze(Object.assign(Object.create(null),yt,{[Symbol.toStringTag]:"Module",get getSchemas(){return or},get getCollections(){return cr},lootContext:sr,default:yt})),dr={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.initCollections=void 0,mr.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 _r={},pr={},ur={};!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=Be;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(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.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,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o: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:i({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,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0}))},"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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"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"}}}})}}(ur),Object.defineProperty(pr,"__esModule",{value:!0}),pr.initAdvancementSchemas=void 0;const fr=Be,hr=ur;pr.initAdvancementSchemas=function(e,t){const r=fr.Reference.bind(void 0,e),o=fr.StringNode.bind(void 0,t),i=fr.ChoiceNode([{type:"object",node:fr.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:fr.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",fr.Mod(fr.ObjectNode({display:fr.Opt(fr.Mod(fr.ObjectNode({icon:fr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:fr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:fr.Opt(o()),frame:fr.Opt(o({enum:["task","challenge","goal"]})),show_toast:fr.Opt(fr.BooleanNode()),announce_to_chat:fr.Opt(fr.BooleanNode()),hidden:fr.Opt(fr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:fr.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:fr.MapNode(o(),r("advancement_criteria")),requirements:fr.Opt(fr.ListNode(fr.ListNode(o()))),rewards:fr.Opt(fr.ObjectNode({function:fr.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:fr.Opt(fr.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:fr.Opt(fr.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:fr.Opt(fr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",fr.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:fr.Opt(fr.ObjectNode({player:fr.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[fr.Switch]:["pop",{push:"trigger"}],[fr.Case]:{"minecraft:bee_nest_destroyed":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:fr.Opt(fr.NumberNode({integer:!0})),item:fr.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:fr.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:fr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:fr.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:fr.Opt(fr.ListNode(i))},"minecraft:construct_beacon":{level:fr.Opt(hr.Range())},"minecraft:consume_item":{item:fr.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:fr.Opt(fr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:fr.Opt(hr.Range()),item:fr.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:fr.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:fr.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:fr.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:fr.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:fr.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:fr.Opt(fr.ObjectNode({empty:fr.Opt(hr.Range()),occupied:fr.Opt(hr.Range()),full:fr.Opt(hr.Range())})),items:fr.Opt(fr.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:fr.Opt(hr.Range()),durability:fr.Opt(hr.Range()),item:fr.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:fr.Opt(r("item_predicate")),location:fr.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:fr.Opt(hr.Range()),victims:fr.Opt(fr.ListNode(i))},"minecraft:levitation":{distance:fr.Opt(hr.Range()),duration:fr.Opt(hr.Range())},"minecraft:location":{location:fr.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:fr.Opt(hr.Range()),entered:fr.Opt(r("location_predicate")),exited:fr.Opt(r("location_predicate"))},"minecraft:placed_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:fr.Opt(r("item_predicate")),location:fr.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:fr.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:fr.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:fr.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:fr.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:fr.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:fr.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:fr.Opt(hr.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:fr.Opt(r("entity_predicate")),item:fr.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:fr.Opt(hr.Range())},"minecraft:used_totem":{item:fr.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:fr.Opt(r("entity_predicate")),item:fr.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var br={};Object.defineProperty(br,"__esModule",{value:!0}),br.initConditionSchemas=void 0;const gr=Be,vr=ur;br.initConditionSchemas=function(e,t){const r=gr.Reference.bind(void 0,e),o=gr.StringNode.bind(void 0,t);e.register("predicate",gr.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",gr.Mod(gr.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[gr.Switch]:[{push:"condition"}],[gr.Case]:vr.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var yr={};Object.defineProperty(yr,"__esModule",{value:!0}),yr.initDimensionSchemas=void 0;const Nr=Be,Or=ur;yr.initDimensionSchemas=function(e,t){const r=Nr.Reference.bind(void 0,e),o=Nr.StringNode.bind(void 0,t),i=e=>Nr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Nr.Mod(Nr.ObjectNode({type:Or.DimensionTypePresets(r("dimension_type")),generator:Nr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Nr.Switch]:[{push:"type"}],[Nr.Case]:{"minecraft:noise":{seed:Nr.NumberNode({integer:!0}),settings:Or.NoiseSettingsPresets(r("noise_settings")),biome_source:Nr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Nr.Switch]:[{push:"type"}],[Nr.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Nr.NumberNode({integer:!0}),preset:Nr.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(Nr.Mod(Nr.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Nr.Opt(Nr.NumberNode({integer:!0,min:0,max:62})),biomes:Nr.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Nr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Nr.NumberNode({integer:!0}),large_biomes:Nr.Opt(Nr.BooleanNode()),legacy_biome_init_layer:Nr.Opt(Nr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Nr.ObjectNode({biome:Nr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Nr.Opt(Nr.BooleanNode()),features:Nr.Opt(Nr.BooleanNode()),layers:Nr.ListNode(r("generator_layer")),structures:r("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",Nr.Mod(Nr.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Nr.ObjectNode({altitude:Nr.NumberNode(),temperature:Nr.NumberNode(),humidity:Nr.NumberNode(),weirdness:Nr.NumberNode(),offset:Nr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Nr.Mod(Nr.ObjectNode({firstOctave:Nr.NumberNode({integer:!0}),amplitudes:Nr.ListNode(Nr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initDimensionTypeSchemas=void 0;const wr=Be,xr=ur;kr.initDimensionTypeSchemas=function(e,t){const r=wr.StringNode.bind(void 0,t);e.register("dimension_type",wr.Mod(wr.ObjectNode({name:wr.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:wr.BooleanNode(),natural:wr.BooleanNode(),piglin_safe:wr.BooleanNode(),respawn_anchor_works:wr.BooleanNode(),bed_works:wr.BooleanNode(),has_raids:wr.BooleanNode(),has_skylight:wr.BooleanNode(),has_ceiling:wr.BooleanNode(),coordinate_scale:wr.NumberNode({min:1e-5,max:3e7}),ambient_light:wr.NumberNode(),fixed_time:wr.Opt(wr.NumberNode({integer:!0})),logical_height:wr.NumberNode({integer:!0,min:0,max:256}),effects:wr.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>xr.DefaultDimensionType}))};var jr={},Sr={};Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.LootFunctions=Sr.LootConditions=Sr.LootCopySources=Sr.LootEntitySources=Sr.LootTableTypes=void 0,Sr.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]}]]),Sr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Sr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Sr.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",[]]]),Sr.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(jr,"__esModule",{value:!0}),jr.initLootTableSchemas=void 0;const Mr=Be,Pr=Sr,Lr=ur;jr.initLootTableSchemas=function(e,t){const r=Mr.Reference.bind(void 0,e),o=Mr.StringNode.bind(void 0,t),i={conditions:Mr.Opt(Mr.ListNode(r("loot_condition")))},a=m({functions:Mr.Opt(Mr.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of Pr.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Mr.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Mr.SwitchNode(i)}const s=n(Pr.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(Pr.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(Pr.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(Pr.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Mr.Mod(Mr.ObjectNode({type:Mr.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Mr.Opt(Mr.ListNode(Mr.Mod(Mr.ObjectNode(m({rolls:Lr.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Mr.Opt(Lr.Range({integer:!0})),entries:Mr.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Mr.Opt(Mr.ListNode(r("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",Mr.Mod(Mr.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Mr.Opt(Mr.Mod(Mr.NumberNode({integer:!0,min:1}),p)),quality:Mr.Opt(Mr.Mod(Mr.NumberNode({integer:!0}),p)),[Mr.Switch]:[{push:"type"}],[Mr.Case]:{"minecraft:alternatives":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Mr.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Mr.Opt(Mr.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Mr.Mod(Mr.ObjectNode({function:c,[Mr.Switch]:[{push:"function"}],[Mr.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Mr.Mod(Mr.ObjectNode({bonusMultiplier:Mr.Mod(Mr.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Mr.Mod(Mr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Mr.Mod(Mr.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:d},"minecraft:copy_nbt":{source:d,ops:Mr.ListNode(Mr.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:Mr.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Mr.Opt(Mr.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Lr.Range({allowBinomial:!0}),treasure:Mr.Opt(Mr.BooleanNode())},"minecraft:exploration_map":{destination:Mr.Opt(o({enum:"map_feature"})),decoration:Mr.Opt(o({enum:"map_decoration"})),zoom:Mr.Opt(Mr.NumberNode({integer:!0})),search_radius:Mr.Opt(Mr.NumberNode({integer:!0})),skip_existing_chunks:Mr.Opt(Mr.BooleanNode())},"minecraft:fill_player_head":{entity:l},"minecraft:limit_count":{limit:Lr.Range({bounds:!0})},"minecraft:looting_enchant":{count:Lr.Range({bounds:!0}),limit:Mr.Opt(Mr.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Mr.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Mr.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Lr.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Lr.Range({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:Mr.Opt(Mr.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Mr.Opt(l),lore:Mr.ListNode(r("text_component")),replace:Mr.Opt(Mr.BooleanNode())},"minecraft:set_name":{entity:Mr.Opt(l),name:Mr.Opt(r("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Mr.Opt(Mr.ListNode(Mr.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:Lr.Range()})))}},a={};return t.get("loot_function_type").forEach((t=>{a[t]=m(m({},e[t]),i)})),a})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Mr.Mod(Mr.ObjectNode({condition:s,[Mr.Switch]:[{push:"condition"}],[Mr.Case]:_(m({},Lr.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:Mr.MapNode(o({validator:"objective"}),Lr.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Mr.Mod(Mr.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:Lr.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Mr.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initPackMcmetaSchemas=void 0;const Br=Be;Cr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Br.Mod(Br.ObjectNode({pack:Br.Mod(Br.ObjectNode({pack_format:Br.Mod(Br.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Br.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.initPredicatesSchemas=void 0;const Rr=Be,Ar=ur;zr.initPredicatesSchemas=function(e,t){const r=Rr.Reference.bind(void 0,e),o=Rr.StringNode.bind(void 0,t),i=Rr.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Rr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Rr.ObjectNode({min:Rr.Opt(Rr.NumberNode({integer:!0})),max:Rr.Opt(Rr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Rr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Rr.ObjectNode({item:Rr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:Rr.Opt(Ar.Range()),durability:Rr.Opt(Ar.Range()),potion:Rr.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Rr.Opt(Rr.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Rr.ObjectNode({enchantment:Rr.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:Rr.Opt(Ar.Range())},{context:"enchantment"})),e.register("block_predicate",Rr.ObjectNode({block:Rr.Opt(o({validator:"resource",params:{pool:"block"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Rr.Opt(Rr.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Rr.ObjectNode({fluid:Rr.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:Rr.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:Rr.Opt(Rr.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",Rr.ObjectNode({position:Rr.Opt(Rr.ObjectNode({x:Rr.Opt(Ar.Range()),y:Rr.Opt(Ar.Range()),z:Rr.Opt(Ar.Range())})),biome:Rr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Rr.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Rr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:Rr.Opt(Rr.ObjectNode({light:Rr.Opt(Ar.Range({integer:!0,min:0,max:15}))})),smokey:Rr.Opt(Rr.BooleanNode()),block:Rr.Opt(r("block_predicate")),fluid:Rr.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Rr.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:Ar.Range(),[Rr.Switch]:[{push:"type"}],[Rr.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Rr.ObjectNode({gamemode:Rr.Opt(o({enum:"gamemode"})),level:Rr.Opt(Ar.Range()),advancements:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),Rr.ChoiceNode([{type:"boolean",node:Rr.BooleanNode(),change:e=>!0},{type:"object",node:Rr.MapNode(o(),Rr.BooleanNode())}]))),recipes:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),Rr.BooleanNode())),stats:Rr.Opt(Rr.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Rr.ObjectNode({amplifier:Rr.Opt(Ar.Range()),duration:Rr.Opt(Ar.Range()),ambient:Rr.Opt(Rr.BooleanNode()),visible:Rr.Opt(Rr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Rr.ObjectNode({x:Rr.Opt(Ar.Range()),y:Rr.Opt(Ar.Range()),z:Rr.Opt(Ar.Range()),absolute:Rr.Opt(Ar.Range()),horizontal:Rr.Opt(Ar.Range())},{context:"distance"})),e.register("entity_predicate",Rr.ObjectNode({type:Rr.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Rr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Rr.Opt(o({validator:"team"})),location:Rr.Opt(r("location_predicate")),distance:Rr.Opt(r("distance_predicate")),flags:Rr.Opt(Rr.ObjectNode({is_on_fire:Rr.Opt(Rr.BooleanNode()),is_sneaking:Rr.Opt(Rr.BooleanNode()),is_sprinting:Rr.Opt(Rr.BooleanNode()),is_swimming:Rr.Opt(Rr.BooleanNode()),is_baby:Rr.Opt(Rr.BooleanNode())})),equipment:Rr.Opt(Rr.MapNode(o({enum:"slot"}),r("item_predicate"))),vehicle:Rr.Opt(r("entity_predicate")),targeted_entity:Rr.Opt(r("entity_predicate")),player:Rr.Opt(r("player_predicate")),fishing_hook:Rr.Opt(Rr.ObjectNode({in_open_water:Rr.Opt(Rr.BooleanNode())})),effects:Rr.Opt(Rr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Rr.ObjectNode({is_explosion:Rr.Opt(Rr.BooleanNode()),is_fire:Rr.Opt(Rr.BooleanNode()),is_magic:Rr.Opt(Rr.BooleanNode()),is_projectile:Rr.Opt(Rr.BooleanNode()),is_lightning:Rr.Opt(Rr.BooleanNode()),bypasses_armor:Rr.Opt(Rr.BooleanNode()),bypasses_invulnerability:Rr.Opt(Rr.BooleanNode()),bypasses_magic:Rr.Opt(Rr.BooleanNode()),source_entity:Rr.Opt(r("entity_predicate")),direct_entity:Rr.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Rr.ObjectNode({dealt:Rr.Opt(Ar.Range()),taken:Rr.Opt(Ar.Range()),blocked:Rr.Opt(Rr.BooleanNode()),source_entity:Rr.Opt(r("entity_predicate")),type:Rr.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Ir={};Object.defineProperty(Ir,"__esModule",{value:!0}),Ir.initRecipeSchemas=void 0;const Tr=Be;Ir.initRecipeSchemas=function(e,t){const r=Tr.Reference.bind(void 0,e),o=Tr.StringNode.bind(void 0,t);e.register("recipe",Tr.Mod(Tr.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Tr.Switch]:[{push:"type"}],[Tr.Case]:{"minecraft:crafting_shaped":{group:Tr.Opt(o({enum:"recipe_group",additional:!0})),pattern:Tr.ListNode(o()),key:Tr.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Tr.Opt(o()),ingredients:Tr.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Tr.Opt(Tr.NumberNode()),cookingtime:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Tr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Tr.NumberNode({integer:!0})},"minecraft:smithing":{group:Tr.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Tr.Mod(Tr.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Tr.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Tr.Mod(Tr.ObjectNode({item:Tr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Tr.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Tr.Mod(Tr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Tr.Opt(Tr.Mod(Tr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.initTagsSchemas=void 0;const Er=Be;Dr.initTagsSchemas=function(e,t){const r=Er.StringNode.bind(void 0,t),o=e=>Er.Mod(Er.ObjectNode({replace:Er.Opt(Er.BooleanNode()),values:Er.ListNode(Er.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Er.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Er.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var Fr={};Object.defineProperty(Fr,"__esModule",{value:!0}),Fr.initTextComponentSchemas=void 0;const $r=Be;Fr.initTextComponentSchemas=function(e,t){const r=$r.Reference.bind(void 0,e),o=$r.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",$r.Mod($r.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:$r.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:$r.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:$r.Opt(o()),font:$r.Opt(o()),bold:$r.Opt($r.BooleanNode()),italic:$r.Opt($r.BooleanNode()),underlined:$r.Opt($r.BooleanNode()),strikethrough:$r.Opt($r.BooleanNode()),obfuscated:$r.Opt($r.BooleanNode()),insertion:$r.Opt(o()),clickEvent:$r.Opt($r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[$r.Switch]:[{push:"action"}],[$r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:$r.Opt($r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[$r.Switch]:[{push:"action"}],[$r.Case]:{show_text:{value:$r.Opt(r("text_component")),contents:$r.Opt(r("text_component"))},show_item:{value:$r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:$r.Opt($r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:$r.Opt($r.NumberNode({integer:!0})),tag:$r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:$r.Opt($r.ObjectNode({name:$r.Opt(o()),type:$r.Opt(o()),id:$r.Opt(o())})),contents:$r.Opt($r.Mod($r.ObjectNode({name:$r.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:$r.Opt(r("text_component_list"))};e.register("text_component_object",$r.Mod($r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:$r.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:$r.ObjectNode(m({translate:o(),with:$r.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:$r.ObjectNode(m({score:$r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:$r.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:$r.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:$r.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:$r.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:$r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:$r.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:$r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:$r.Opt($r.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",$r.Mod($r.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ur={},qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.initBiomeSchemas=void 0;const Zr=Be;qr.initBiomeSchemas=function(e,t){const r=Zr.StringNode.bind(void 0,t);e.register("biome",Zr.Mod(Zr.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Zr.NumberNode(),scale:Zr.NumberNode(),temperature:Zr.NumberNode(),downfall:Zr.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Zr.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Zr.Opt(Zr.BooleanNode()),creature_spawn_probability:Zr.Opt(Zr.NumberNode({min:0,max:1})),effects:Zr.ObjectNode({sky_color:Zr.NumberNode({color:!0}),fog_color:Zr.NumberNode({color:!0}),water_color:Zr.NumberNode({color:!0}),water_fog_color:Zr.NumberNode({color:!0}),grass_color:Zr.Opt(Zr.NumberNode({color:!0})),foliage_color:Zr.Opt(Zr.NumberNode({color:!0})),grass_color_modifier:Zr.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Zr.Opt(r()),mood_sound:Zr.Opt(Zr.ObjectNode({sound:r(),tick_delay:Zr.NumberNode({integer:!0}),block_search_extent:Zr.NumberNode({integer:!0}),offset:Zr.NumberNode()})),additions_sound:Zr.Opt(Zr.ObjectNode({sound:r(),tick_chance:Zr.NumberNode({min:0,max:1})})),music:Zr.Opt(Zr.ObjectNode({sound:r(),min_delay:Zr.NumberNode({integer:!0,min:0}),max_delay:Zr.NumberNode({integer:!0,min:0}),replace_current_music:Zr.BooleanNode()})),particle:Zr.Opt(Zr.ObjectNode({options:Zr.ObjectNode({type:r()}),probability:Zr.NumberNode({min:0,max:1})}))}),starts:Zr.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Zr.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),Zr.Mod(Zr.ListNode(Zr.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Zr.NumberNode({integer:!0}),minCount:Zr.NumberNode({integer:!0}),maxCount:Zr.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Zr.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Zr.Mod(Zr.ObjectNode({energy_budget:Zr.NumberNode(),charge:Zr.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Zr.MapNode(r({enum:["air","liquid"]}),Zr.Mod(Zr.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Zr.ListNode(Zr.Mod(Zr.ListNode(r({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 Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.initCarverSchemas=void 0;const Wr=Be;Hr.initCarverSchemas=function(e,t){const r=Wr.StringNode.bind(void 0,t);e.register("configured_carver",Wr.Mod(Wr.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:Wr.ObjectNode({probability:Wr.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Xr={};Object.defineProperty(Xr,"__esModule",{value:!0}),Xr.initDecoratorSchemas=void 0;const Yr=Be,Jr=ur;Xr.initDecoratorSchemas=function(e,t){const r=Yr.Reference.bind(void 0,e),o=Yr.StringNode.bind(void 0,t),i={maximum:Yr.NumberNode({integer:!0}),bottom_offset:Yr.NumberNode({integer:!0}),top_offset:Yr.NumberNode({integer:!0})},a={chance:Yr.NumberNode({integer:!0,min:0})},n={count:Jr.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",Yr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Yr.ObjectNode({[Yr.Switch]:["pop",{push:"type"}],[Yr.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"}),probability:Yr.NumberNode({min:0,max:1})},"minecraft:chance":a,"minecraft:count":n,"minecraft:count_extra":{count:Yr.NumberNode({integer:!0}),extra_count:Yr.NumberNode({integer:!0}),extra_chance:Yr.NumberNode({min:0,max:1})},"minecraft:count_multilayer":n,"minecraft:count_noise":{noise_level:Yr.NumberNode(),below_noise:Yr.NumberNode({integer:!0}),above_noise:Yr.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Yr.NumberNode({integer:!0}),noise_factor:Yr.NumberNode(),noise_offset:Yr.Opt(Yr.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:Yr.NumberNode({integer:!0}),spread:Yr.NumberNode({integer:!0})},"minecraft:fire":n,"minecraft:glowstone":n,"minecraft:lava_lake":a,"minecraft:range":i,"minecraft:range_biased":i,"minecraft:range_very_biased":i,"minecraft:water_lake":a}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Kr={},Gr={};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.initProcessorListSchemas=void 0;const Vr=Be;Gr.initProcessorListSchemas=function(e,t){const r=Vr.Reference.bind(void 0,e),o=Vr.StringNode.bind(void 0,t);e.register("processor_list",Vr.Mod(Vr.ObjectNode({processors:Vr.ListNode(r("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",Vr.Mod(Vr.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Vr.Switch]:[{push:"processor_type"}],[Vr.Case]:{"minecraft:block_age":{mossiness:Vr.NumberNode()},"minecraft:block_ignore":{blocks:Vr.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Vr.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Vr.NumberNode({integer:!0})},"minecraft:rule":{rules:Vr.ListNode(r("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",Vr.Mod(Vr.ObjectNode({position_predicate:Vr.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Vr.Opt(o({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 i={min_dist:Vr.NumberNode({min:0,max:255,integer:!0}),max_dist:Vr.NumberNode({min:0,max:255,integer:!0}),min_chance:Vr.NumberNode({min:0,max:1}),max_chance:Vr.NumberNode({min:0,max:1})};e.register("pos_rule_test",Vr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Vr.Switch]:[{push:"predicate_type"}],[Vr.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Vr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Vr.Switch]:[{push:"predicate_type"}],[Vr.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Vr.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Vr.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initFeatureSchemas=void 0;const Qr=Be,eo=ur;Kr.initFeatureSchemas=function(e,t){const r=Qr.Reference.bind(void 0,e),o=Qr.StringNode.bind(void 0,t),i={can_replace:Qr.BooleanNode(),project:Qr.BooleanNode(),need_water:Qr.BooleanNode(),xspread:Qr.NumberNode({integer:!0}),yspread:Qr.NumberNode({integer:!0}),zspread:Qr.NumberNode({integer:!0}),tries:Qr.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Qr.ListNode(r("block_state")),blacklist:Qr.ListNode(r("block_state"))},a={state:r("block_state"),radius:eo.UniformInt({min:0,max:4,maxSpread:4}),half_height:Qr.NumberNode({integer:!0,min:0,max:4}),targets:Qr.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Qr.Opt(Qr.NumberNode({integer:!0}))},s={state:r("block_state"),size:Qr.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:eo.UniformInt({min:-10,max:128,maxSpread:128})},l=Qr.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Qr.ObjectNode({[Qr.Switch]:["pop",{push:"type"}],[Qr.Case]:{"minecraft:bamboo":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:eo.UniformInt({min:0,max:2,maxSpread:1}),height:eo.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:eo.UniformInt({min:0,max:8,maxSpread:8}),rim_size:eo.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":a,"minecraft:emerald_ore":{state:r("block_state"),target:r("block_state")},"minecraft:end_gateway":{exact:Qr.BooleanNode(),exit:Qr.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Qr.Opt(Qr.BooleanNode()),crystal_beam_target:Qr.Opt(r("block_pos")),spikes:Qr.ListNode(Qr.ObjectNode({centerX:Qr.Opt(Qr.NumberNode({integer:!0})),centerZ:Qr.Opt(Qr.NumberNode({integer:!0})),radius:Qr.Opt(Qr.NumberNode({integer:!0})),height:Qr.Opt(Qr.NumberNode({integer:!0})),guarded:Qr.Opt(Qr.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Qr.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Qr.Opt(Qr.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:eo.UniformInt()},"minecraft:no_bonemeal_flower":i,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Qr.ListNode(Qr.ObjectNode({chance:Qr.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:Qr.ListNode(r("block_state")),place_in:Qr.ListNode(r("block_state")),place_under:Qr.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:Qr.ListNode(l)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Qr.NumberNode({integer:!0}),hole_count:Qr.NumberNode({integer:!0}),requires_block_below:Qr.BooleanNode(),valid_blocks:Qr.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:Qr.NumberNode({integer:!0}),ignore_vines:Qr.BooleanNode(),heightmap:o({enum:"heightmap_type"}),minimum_size:r("feature_size"),trunk_provider:r("block_state_provider"),leaves_provider:r("block_state_provider"),trunk_placer:Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Qr.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Qr.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Qr.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:eo.UniformInt({min:0,max:8,maxSpread:8}),offset:eo.UniformInt({min:0,max:8,maxSpread:8}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:blob_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Qr.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:eo.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:eo.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:eo.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Qr.ListNode(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Qr.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Qr.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",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Qr.Opt(Qr.NumberNode({min:0,max:80})),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:two_layers_feature_size":{limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:81})),lower_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),upper_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:80})),upper_limit:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:80})),lower_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),middle_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16})),upper_size:Qr.Opt(Qr.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Qr.ListNode(Qr.Mod(Qr.ObjectNode({weight:Qr.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Qr.Mod(Qr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:column_placer":{min_size:Qr.NumberNode({integer:!0}),extra_size:Qr.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var to={};Object.defineProperty(to,"__esModule",{value:!0}),to.initNoiseSettingsSchemas=void 0;const ro=Be,oo=ur;to.initNoiseSettingsSchemas=function(e,t){const r=ro.Reference.bind(void 0,e),o=ro.StringNode.bind(void 0,t);e.register("noise_settings",ro.Mod(ro.ObjectNode({name:ro.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:ro.NumberNode({integer:!0}),bedrock_floor_position:ro.NumberNode({integer:!0}),sea_level:ro.NumberNode({integer:!0}),disable_mob_generation:ro.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:ro.ObjectNode({height:ro.NumberNode({integer:!0}),density_factor:ro.NumberNode(),density_offset:ro.NumberNode(),size_horizontal:ro.NumberNode({integer:!0}),size_vertical:ro.NumberNode({integer:!0}),simplex_surface_noise:ro.BooleanNode(),random_density_offset:ro.Opt(ro.BooleanNode()),island_noise_override:ro.Opt(ro.BooleanNode()),amplified:ro.Opt(ro.BooleanNode()),sampling:ro.ObjectNode({xz_scale:ro.NumberNode(),y_scale:ro.NumberNode(),xz_factor:ro.NumberNode(),y_factor:ro.NumberNode()}),bottom_slide:ro.ObjectNode({target:ro.NumberNode({integer:!0}),size:ro.NumberNode({integer:!0}),offset:ro.NumberNode({integer:!0})}),top_slide:ro.ObjectNode({target:ro.NumberNode({integer:!0}),size:ro.NumberNode({integer:!0}),offset:ro.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>oo.DefaultNoiseSettings})),e.register("generator_structures",ro.ObjectNode({stronghold:ro.Opt(ro.ObjectNode({distance:ro.NumberNode({integer:!0,min:0,max:1023}),spread:ro.NumberNode({integer:!0,min:0,max:1023}),count:ro.NumberNode({integer:!0,min:1,max:4095})})),structures:ro.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ro.Mod(ro.ObjectNode({spacing:ro.NumberNode({integer:!0,min:0,max:4096}),separation:ro.Mod(ro.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:ro.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ro.Mod(ro.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:ro.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initStructureFeatureSchemas=void 0;const ao=Be;io.initStructureFeatureSchemas=function(e,t){const r=ao.StringNode.bind(void 0,t),o={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ao.NumberNode({integer:!0})};e.register("configured_structure_feature",ao.Mod(ao.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ao.ObjectNode({[ao.Switch]:["pop",{push:"type"}],[ao.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:ao.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ao.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ao.NumberNode({min:0,max:1}),cluster_probability:ao.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ao.Opt(ao.BooleanNode())},"minecraft:village":o}},{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 so=Be;no.initSurfaceBuilderSchemas=function(e,t){const r=so.StringNode.bind(void 0,t),o=so.Reference.bind(void 0,e);e.register("configured_surface_builder",so.Mod(so.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:so.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 co={};Object.defineProperty(co,"__esModule",{value:!0}),co.initTemplatePoolSchemas=void 0;const lo=Be;co.initTemplatePoolSchemas=function(e,t){const r=lo.Reference.bind(void 0,e),o=lo.StringNode.bind(void 0,t),i=lo.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",lo.Mod(lo.ObjectNode({name:o(),fallback:o(),elements:lo.ListNode(r("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",lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",lo.Mod(lo.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[lo.Switch]:[{push:"element_type"}],[lo.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i},"minecraft:list_pool_element":{elements:lo.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ur,"__esModule",{value:!0}),Ur.initWorldgenSchemas=void 0;const mo=qr,_o=Hr,po=Xr,uo=Kr,fo=to,ho=Gr,bo=io,go=no,vo=co;Ur.initWorldgenSchemas=function(e,t){mo.initBiomeSchemas(e,t),_o.initCarverSchemas(e,t),po.initDecoratorSchemas(e,t),uo.initFeatureSchemas(e,t),fo.initNoiseSettingsSchemas(e,t),ho.initProcessorListSchemas(e,t),bo.initStructureFeatureSchemas(e,t),go.initSurfaceBuilderSchemas(e,t),vo.initTemplatePoolSchemas(e,t)};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initWorldSettingsSchemas=void 0;const No=Be;yo.initWorldSettingsSchemas=function(e,t){const r=No.Reference.bind(void 0,e),o=No.StringNode.bind(void 0,t);e.register("world_settings",No.Mod(No.ObjectNode({generate_features:No.BooleanNode(),bonus_chest:No.BooleanNode(),seed:No.NumberNode({integer:!0}),dimensions:No.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(_r,"__esModule",{value:!0}),_r.initSchemas=void 0;const Oo=pr,ko=ur,wo=br,xo=yr,jo=kr,So=jr,Mo=Cr,Po=zr,Lo=Ir,Co=Dr,Bo=Fr,zo=Ur,Ro=yo;_r.initSchemas=function(e,t){ko.initCommonSchemas(e,t),Oo.initAdvancementSchemas(e,t),wo.initConditionSchemas(e,t),jo.initDimensionTypeSchemas(e,t),xo.initDimensionSchemas(e,t),So.initLootTableSchemas(e,t),Mo.initPackMcmetaSchemas(e,t),Po.initPredicatesSchemas(e,t),Lo.initRecipeSchemas(e,t),Co.initTagsSchemas(e,t),Bo.initTextComponentSchemas(e,t),zo.initWorldgenSchemas(e,t),Ro.initWorldSettingsSchemas(e,t)};var Ao=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Io=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),To=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&Ao(t,e,r);return Io(t,e),t};Object.defineProperty(dr,"__esModule",{value:!0});var Do=dr.getSchemas=dr.getCollections=void 0;const Eo=Be,Fo=mr,$o=_r;var Uo=dr.lootContext=To(Sr);var qo=dr.getCollections=function(){const e=new Eo.CollectionRegistry;return Fo.initCollections(e),e};Do=dr.getSchemas=function(e){const t=new Eo.SchemaRegistry;return $o.initSchemas(t,e),t};var Zo=Object.freeze(Object.assign(Object.create(null),dr,{[Symbol.toStringTag]:"Module",get getSchemas(){return Do},get getCollections(){return qo},lootContext:Uo,default:dr})),Ho={},Wo={};Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.initCollections=void 0,Wo.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 Xo={},Yo={};Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.initAdvancementSchemas=void 0;const Jo=Be;Yo.initAdvancementSchemas=function(e,t){const r=Jo.Reference.bind(void 0,e),o=Jo.StringNode.bind(void 0,t),i=Jo.ChoiceNode([{type:"object",node:Jo.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Jo.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Jo.Mod(Jo.ObjectNode({display:Jo.Opt(Jo.Mod(Jo.ObjectNode({icon:Jo.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:Jo.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Jo.Opt(o()),frame:Jo.Opt(o({enum:["task","challenge","goal"]})),show_toast:Jo.Opt(Jo.BooleanNode()),announce_to_chat:Jo.Opt(Jo.BooleanNode()),hidden:Jo.Opt(Jo.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Jo.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:Jo.MapNode(o(),r("advancement_criteria")),requirements:Jo.Opt(Jo.ListNode(Jo.ListNode(o()))),rewards:Jo.Opt(Jo.ObjectNode({function:Jo.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:Jo.Opt(Jo.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Jo.Opt(Jo.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:Jo.Opt(Jo.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Jo.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Jo.Opt(Jo.ObjectNode({player:Jo.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Jo.Switch]:["pop",{push:"trigger"}],[Jo.Case]:{"minecraft:bee_nest_destroyed":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:Jo.Opt(Jo.NumberNode({integer:!0})),item:Jo.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Jo.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Jo.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:Jo.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Jo.Opt(Jo.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Jo.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Jo.Opt(Jo.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),Jo.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Jo.Opt(i)},"minecraft:enter_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Jo.Opt(Jo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Jo.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Jo.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Jo.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Jo.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Jo.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Jo.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Jo.Opt(Jo.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Jo.Opt(Jo.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Jo.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Jo.Opt(r("item_predicate")),location:Jo.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Jo.Opt(Jo.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Jo.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:Jo.Opt(r("location_predicate")),exited:Jo.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Jo.Opt(Jo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Jo.Opt(r("item_predicate")),location:Jo.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Jo.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Jo.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Jo.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Jo.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Jo.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Jo.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:Jo.Opt(r("entity_predicate")),item:Jo.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:Jo.Opt(r("item_predicate"))},"minecraft:using_item":{item:Jo.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Jo.Opt(r("entity_predicate")),item:Jo.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Ko={};!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=Be;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(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const n=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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})}]));r.register("int_bounds",n(!0)),r.register("float_bounds",n()),r.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 s=(e,r,o,a,n,s,c)=>{let l={};n&&Object.keys(c[n]).forEach((e=>{l[e]=t.Mod(c[n][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(m({type:t.Mod(t.Opt(i({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:c},l),{context:s,disableSwitchContext:!0}),_=[{type:r,node:c[a][o]}];return n&&_.push({type:"object",priority:-1,node:d}),Object.keys(c).forEach((e=>{_.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(_,{context:s,choiceContext:`${s}.type`})};r.register("number_provider",s("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:i({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:i({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(i({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:i({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(i({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>s("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()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(m({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e)),source:a("int_provider")})}}),r.register("int_provider",e.IntProvider()),r.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 r,o,i;return{[e]:null!==(i=null!==(o=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",s("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.ConditionCases=(e=i({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{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(i({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:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({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,r=i({enum:"copy_source"}),n=i({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:o.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:r},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.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:t.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(i({enum:"map_feature"})),decoration:t.Opt(i({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:i({enum:"banner_pattern"}),color:i({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{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(i({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:i({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:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},c={};return o.get("loot_function_type").forEach((t=>{c[t]=m(m({},s[t]),e)})),c},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"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"}}}})}}(Ko);var Go={};Object.defineProperty(Go,"__esModule",{value:!0}),Go.initConditionSchemas=void 0;const Vo=Be,Qo=Ko;Go.initConditionSchemas=function(e,t){const r=Vo.Reference.bind(void 0,e),o=Vo.StringNode.bind(void 0,t);e.register("predicate",Vo.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Vo.Mod(Vo.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Vo.Switch]:[{push:"condition"}],[Vo.Case]:Qo.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.initDimensionSchemas=void 0;const ti=Be,ri=Ko;ei.initDimensionSchemas=function(e,t){const r=ti.Reference.bind(void 0,e),o=ti.StringNode.bind(void 0,t),i=e=>ti.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",ti.Mod(ti.ObjectNode({type:ri.DimensionTypePresets(r("dimension_type")),generator:ti.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[ti.Switch]:[{push:"type"}],[ti.Case]:{"minecraft:noise":{seed:ti.NumberNode({integer:!0}),settings:ri.NoiseSettingsPresets(r("noise_settings")),biome_source:ti.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[ti.Switch]:[{push:"type"}],[ti.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:ti.NumberNode({integer:!0}),preset:ti.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(ti.Mod(ti.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:ti.Opt(ti.NumberNode({integer:!0,min:0,max:62})),biomes:ti.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:ti.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:ti.NumberNode({integer:!0}),large_biomes:ti.Opt(ti.BooleanNode()),legacy_biome_init_layer:ti.Opt(ti.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:ti.ObjectNode({biome:ti.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:ti.Opt(ti.BooleanNode()),features:ti.Opt(ti.BooleanNode()),layers:ti.ListNode(r("generator_layer")),structures:r("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",ti.Mod(ti.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:ti.ObjectNode({altitude:ti.NumberNode(),temperature:ti.NumberNode(),humidity:ti.NumberNode(),weirdness:ti.NumberNode(),offset:ti.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",ti.Mod(ti.ObjectNode({firstOctave:ti.NumberNode({integer:!0}),amplitudes:ti.ListNode(ti.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initDimensionTypeSchemas=void 0;const ii=Be,ai=Ko;oi.initDimensionTypeSchemas=function(e,t){const r=ii.StringNode.bind(void 0,t);e.register("dimension_type",ii.Mod(ii.ObjectNode({name:ii.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:ii.BooleanNode(),natural:ii.BooleanNode(),piglin_safe:ii.BooleanNode(),respawn_anchor_works:ii.BooleanNode(),bed_works:ii.BooleanNode(),has_raids:ii.BooleanNode(),has_skylight:ii.BooleanNode(),has_ceiling:ii.BooleanNode(),coordinate_scale:ii.NumberNode({min:1e-5,max:3e7}),ambient_light:ii.NumberNode(),fixed_time:ii.Opt(ii.NumberNode({integer:!0})),logical_height:ii.NumberNode({integer:!0,min:0,max:4096}),effects:ii.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:ii.NumberNode({integer:!0,min:-2048,max:2047}),height:ii.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>ai.DefaultDimensionType,validate:(t,r,o,i)=>((null==(r=e.validate(t,r,o,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initItemModifierSchemas=void 0;const si=Be,ci=Ko;ni.initItemModifierSchemas=function(e,t){const r=si.Reference.bind(void 0,e),o=si.StringNode.bind(void 0,t);e.register("item_modifier",si.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:si.Opt(si.ListNode(r("condition")))};e.register("function",si.Mod(si.ObjectNode({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[si.Switch]:[{push:"function"}],[si.Case]:ci.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var li={},di={};Object.defineProperty(di,"__esModule",{value:!0}),di.LootFunctions=di.LootConditions=di.LootCopySources=di.LootEntitySources=di.LootTableTypes=void 0,di.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]}]]),di.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),di.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),di.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",[]]]),di.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(li,"__esModule",{value:!0}),li.initLootTableSchemas=void 0;const mi=Be,_i=di,pi=Ko;li.initLootTableSchemas=function(e,t){const r=mi.Reference.bind(void 0,e),o=mi.StringNode.bind(void 0,t),i={conditions:mi.Opt(mi.ListNode(r("loot_condition")))},a=m({functions:mi.Opt(mi.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of _i.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new mi.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),mi.SwitchNode(i)}const s=n(_i.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(_i.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(_i.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(_i.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",mi.Mod(mi.ObjectNode({type:mi.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:mi.Opt(mi.ListNode(mi.Mod(mi.ObjectNode(m({rolls:r("number_provider"),bonus_rolls:mi.Opt(r("number_provider")),entries:mi.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:mi.Opt(mi.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={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",mi.Mod(mi.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:mi.Opt(mi.Mod(mi.NumberNode({integer:!0,min:1}),_)),quality:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),_)),[mi.Switch]:[{push:"type"}],[mi.Case]:{"minecraft:alternatives":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:mi.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:mi.Opt(mi.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",mi.Mod(mi.ObjectNode({function:c,[mi.Switch]:[{push:"function"}],[mi.Case]:pi.FunctionCases(i,d,l)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",mi.Mod(mi.ObjectNode({condition:s,[mi.Switch]:[{push:"condition"}],[mi.Case]:pi.ConditionCases(l)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",mi.Mod(mi.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:r("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:mi.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ui={};Object.defineProperty(ui,"__esModule",{value:!0}),ui.initPackMcmetaSchemas=void 0;const fi=Be;ui.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",fi.Mod(fi.ObjectNode({pack:fi.Mod(fi.ObjectNode({pack_format:fi.Mod(fi.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:fi.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var hi={};Object.defineProperty(hi,"__esModule",{value:!0}),hi.initPredicatesSchemas=void 0;const bi=Be;hi.initPredicatesSchemas=function(e,t){const r=bi.Reference.bind(void 0,e),o=bi.StringNode.bind(void 0,t),i=bi.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:bi.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:bi.ObjectNode({min:bi.Opt(bi.NumberNode({integer:!0})),max:bi.Opt(bi.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:bi.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",bi.ObjectNode({items:bi.Opt(bi.ListNode(o({validator:"resource",params:{pool:"item"}}))),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:bi.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:bi.Opt(bi.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",bi.ObjectNode({enchantment:bi.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",bi.ObjectNode({blocks:bi.Opt(bi.ListNode(o({validator:"resource",params:{pool:"block"}}))),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:bi.Opt(bi.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",bi.ObjectNode({fluid:bi.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:bi.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:bi.Opt(bi.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",bi.ObjectNode({position:bi.Opt(bi.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:bi.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:bi.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:bi.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:bi.Opt(bi.ObjectNode({light:r("int_bounds")})),smokey:bi.Opt(bi.BooleanNode()),block:bi.Opt(r("block_predicate")),fluid:bi.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",bi.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:r("int_bounds"),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",bi.ObjectNode({gamemode:bi.Opt(o({enum:"gamemode"})),level:r("int_bounds"),advancements:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),bi.ChoiceNode([{type:"boolean",node:bi.BooleanNode(),change:e=>!0},{type:"object",node:bi.MapNode(o(),bi.BooleanNode())}]))),recipes:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),bi.BooleanNode())),stats:bi.Opt(bi.ListNode(r("statistic_predicate"))),looking_at:bi.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",bi.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:bi.Opt(bi.BooleanNode()),visible:bi.Opt(bi.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",bi.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",bi.ObjectNode({type:bi.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:bi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:bi.Opt(o({validator:"team"})),location:bi.Opt(r("location_predicate")),stepping_on:bi.Opt(r("location_predicate")),distance:bi.Opt(r("distance_predicate")),flags:bi.Opt(bi.ObjectNode({is_on_fire:bi.Opt(bi.BooleanNode()),is_sneaking:bi.Opt(bi.BooleanNode()),is_sprinting:bi.Opt(bi.BooleanNode()),is_swimming:bi.Opt(bi.BooleanNode()),is_baby:bi.Opt(bi.BooleanNode())})),equipment:bi.Opt(bi.MapNode(o({enum:"slot"}),r("item_predicate"))),player:bi.Opt(r("player_predicate")),vehicle:bi.Opt(r("entity_predicate")),passenger:bi.Opt(r("entity_predicate")),targeted_entity:bi.Opt(r("entity_predicate")),lightning_bolt:bi.Opt(bi.ObjectNode({blocks_set_on_fire:bi.Opt(r("int_bounds")),entity_struck:bi.Opt(r("entity_predicate"))})),fishing_hook:bi.Opt(bi.ObjectNode({in_open_water:bi.Opt(bi.BooleanNode())})),effects:bi.Opt(bi.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",bi.ObjectNode({is_explosion:bi.Opt(bi.BooleanNode()),is_fire:bi.Opt(bi.BooleanNode()),is_magic:bi.Opt(bi.BooleanNode()),is_projectile:bi.Opt(bi.BooleanNode()),is_lightning:bi.Opt(bi.BooleanNode()),bypasses_armor:bi.Opt(bi.BooleanNode()),bypasses_invulnerability:bi.Opt(bi.BooleanNode()),bypasses_magic:bi.Opt(bi.BooleanNode()),source_entity:bi.Opt(r("entity_predicate")),direct_entity:bi.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",bi.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:bi.Opt(bi.BooleanNode()),source_entity:bi.Opt(r("entity_predicate")),type:bi.Opt(r("damage_source_predicate"))},{context:"damage"}))};var gi={};Object.defineProperty(gi,"__esModule",{value:!0}),gi.initRecipeSchemas=void 0;const vi=Be;gi.initRecipeSchemas=function(e,t){const r=vi.Reference.bind(void 0,e),o=vi.StringNode.bind(void 0,t);e.register("recipe",vi.Mod(vi.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[vi.Switch]:[{push:"type"}],[vi.Case]:{"minecraft:crafting_shaped":{group:vi.Opt(o({enum:"recipe_group",additional:!0})),pattern:vi.ListNode(o()),key:vi.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:vi.Opt(o()),ingredients:vi.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:vi.Opt(vi.NumberNode()),cookingtime:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:vi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:vi.NumberNode({integer:!0})},"minecraft:smithing":{group:vi.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",vi.Mod(vi.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:vi.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",vi.Mod(vi.ObjectNode({item:vi.Opt(o({validator:"resource",params:{pool:"item"}})),tag:vi.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",vi.Mod(vi.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:vi.Opt(vi.Mod(vi.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var yi={};Object.defineProperty(yi,"__esModule",{value:!0}),yi.initTagsSchemas=void 0;const Ni=Be;yi.initTagsSchemas=function(e,t){const r=Ni.StringNode.bind(void 0,t),o=e=>Ni.Mod(Ni.ObjectNode({replace:Ni.Opt(Ni.BooleanNode()),values:Ni.ListNode(Ni.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ni.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ni.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))};var Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initTextComponentSchemas=void 0;const ki=Be;Oi.initTextComponentSchemas=function(e,t){const r=ki.Reference.bind(void 0,e),o=ki.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",ki.Mod(ki.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:ki.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ki.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:ki.Opt(o()),font:ki.Opt(o()),bold:ki.Opt(ki.BooleanNode()),italic:ki.Opt(ki.BooleanNode()),underlined:ki.Opt(ki.BooleanNode()),strikethrough:ki.Opt(ki.BooleanNode()),obfuscated:ki.Opt(ki.BooleanNode()),insertion:ki.Opt(o()),clickEvent:ki.Opt(ki.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ki.Switch]:[{push:"action"}],[ki.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ki.Opt(ki.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[ki.Switch]:[{push:"action"}],[ki.Case]:{show_text:{value:ki.Opt(r("text_component")),contents:ki.Opt(r("text_component"))},show_item:{value:ki.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:ki.Opt(ki.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:ki.Opt(ki.NumberNode({integer:!0})),tag:ki.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:ki.Opt(ki.ObjectNode({name:ki.Opt(o()),type:ki.Opt(o()),id:ki.Opt(o())})),contents:ki.Opt(ki.Mod(ki.ObjectNode({name:ki.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:ki.Opt(r("text_component_list"))};e.register("text_component_object",ki.Mod(ki.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ki.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ki.ObjectNode(m({translate:o(),with:ki.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ki.ObjectNode(m({score:ki.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:ki.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ki.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:ki.Opt(r("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ki.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ki.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:ki.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ki.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ki.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:ki.Opt(ki.BooleanNode()),separator:ki.Opt(r("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ki.Mod(ki.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var wi={},xi={};Object.defineProperty(xi,"__esModule",{value:!0}),xi.initBiomeSchemas=void 0;const ji=Be;xi.initBiomeSchemas=function(e,t){const r=ji.StringNode.bind(void 0,t);e.register("biome",ji.Mod(ji.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:ji.NumberNode(),scale:ji.NumberNode(),temperature:ji.NumberNode(),downfall:ji.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:ji.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:ji.Opt(ji.BooleanNode()),creature_spawn_probability:ji.Opt(ji.NumberNode({min:0,max:1})),effects:ji.ObjectNode({sky_color:ji.NumberNode({color:!0}),fog_color:ji.NumberNode({color:!0}),water_color:ji.NumberNode({color:!0}),water_fog_color:ji.NumberNode({color:!0}),grass_color:ji.Opt(ji.NumberNode({color:!0})),foliage_color:ji.Opt(ji.NumberNode({color:!0})),grass_color_modifier:ji.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:ji.Opt(r()),mood_sound:ji.Opt(ji.ObjectNode({sound:r(),tick_delay:ji.NumberNode({integer:!0}),block_search_extent:ji.NumberNode({integer:!0}),offset:ji.NumberNode()})),additions_sound:ji.Opt(ji.ObjectNode({sound:r(),tick_chance:ji.NumberNode({min:0,max:1})})),music:ji.Opt(ji.ObjectNode({sound:r(),min_delay:ji.NumberNode({integer:!0,min:0}),max_delay:ji.NumberNode({integer:!0,min:0}),replace_current_music:ji.BooleanNode()})),particle:ji.Opt(ji.ObjectNode({options:ji.ObjectNode({type:r()}),probability:ji.NumberNode({min:0,max:1})}))}),starts:ji.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:ji.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),ji.Mod(ji.ListNode(ji.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:ji.NumberNode({integer:!0}),minCount:ji.NumberNode({integer:!0}),maxCount:ji.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:ji.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),ji.Mod(ji.ObjectNode({energy_budget:ji.NumberNode(),charge:ji.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:ji.MapNode(r({enum:["air","liquid"]}),ji.Mod(ji.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:ji.ListNode(ji.Mod(ji.ListNode(r({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 Si={};Object.defineProperty(Si,"__esModule",{value:!0}),Si.initCarverSchemas=void 0;const Mi=Be,Pi=Ko;Si.initCarverSchemas=function(e,t){const r=Mi.Reference.bind(void 0,e),o=Mi.StringNode.bind(void 0,t),i={vertical_rotation:Pi.FloatProvider(),shape:Mi.ObjectNode({distance_factor:Pi.FloatProvider(),thickness:Pi.FloatProvider(),width_smoothness:Mi.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Pi.FloatProvider(),vertical_radius_default_factor:Mi.NumberNode(),vertical_radius_center_factor:Mi.NumberNode()})},a={horizontal_radius_multiplier:Pi.FloatProvider(),vertical_radius_multiplier:Pi.FloatProvider(),floor_level:Pi.FloatProvider({min:-1,max:1})};e.register("configured_carver",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:Mi.ObjectNode({probability:Mi.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Pi.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:Mi.BooleanNode(),debug_settings:Mi.Opt(Mi.ObjectNode({debug_mode:Mi.Opt(Mi.BooleanNode()),air_state:Mi.Opt(r("block_state")),water_state:Mi.Opt(r("block_state")),lava_state:Mi.Opt(r("block_state")),barrier_state:Mi.Opt(r("block_state"))})),[Mi.Switch]:["pop",{push:"type"}],[Mi.Case]:{"minecraft:canyon":i,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Li={};Object.defineProperty(Li,"__esModule",{value:!0}),Li.initDecoratorSchemas=void 0;const Ci=Be,Bi=Ko;Li.initDecoratorSchemas=function(e,t){const r=Ci.Reference.bind(void 0,e),o=Ci.StringNode.bind(void 0,t),i={count:Bi.IntProvider({min:0,max:256})};e.register("configured_decorator",Ci.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Ci.ObjectNode({[Ci.Switch]:["pop",{push:"type"}],[Ci.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:cave_surface":{surface:o({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:Ci.NumberNode({integer:!0})},"minecraft:chance":{chance:Ci.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:Ci.NumberNode({integer:!0,min:0}),extra_count:Ci.NumberNode({integer:!0,min:0}),extra_chance:Ci.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:Ci.NumberNode(),below_noise:Ci.NumberNode({integer:!0}),above_noise:Ci.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Ci.NumberNode({integer:!0}),noise_factor:Ci.NumberNode(),noise_offset:Ci.Opt(Ci.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:o({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:Ci.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:Ci.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var zi={},Ri={};Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.initProcessorListSchemas=Ri.Processors=void 0;const Ai=Be;Ri.initProcessorListSchemas=function(e,t){const r=Ai.Reference.bind(void 0,e),o=Ai.StringNode.bind(void 0,t);Ri.Processors=Ai.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Ai.Mod(Ai.ObjectNode({processors:Ai.ListNode(r("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:o({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(r("block_state"))},"minecraft:block_rot":{integrity:Ai.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Ai.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Ai.ListNode(r("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(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Ai.Opt(o({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 i={min_dist:Ai.Opt(Ai.NumberNode({min:0,max:255,integer:!0})),max_dist:Ai.Opt(Ai.NumberNode({min:0,max:255,integer:!0})),min_chance:Ai.Opt(Ai.NumberNode({min:0,max:1})),max_chance:Ai.Opt(Ai.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Ai.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Ai.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Ai.Switch]:[{push:"predicate_type"}],[Ai.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Ai.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Ai.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(zi,"__esModule",{value:!0}),zi.initFeatureSchemas=void 0;const Ii=Be,Ti=Ko,Di=Ri;zi.initFeatureSchemas=function(e,t){const r=Ii.Reference.bind(void 0,e),o=Ii.StringNode.bind(void 0,t),i={can_replace:Ii.Opt(Ii.BooleanNode()),project:Ii.Opt(Ii.BooleanNode()),need_water:Ii.Opt(Ii.BooleanNode()),xspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),yspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),zspread:Ii.Opt(Ii.NumberNode({integer:!0,min:0})),tries:Ii.Opt(Ii.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Ii.ListNode(r("block_state")),blacklist:Ii.ListNode(r("block_state"))},a={state:r("block_state"),radius:Ti.IntProvider({min:0,max:8}),half_height:Ii.NumberNode({integer:!0,min:0,max:4}),targets:Ii.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Ii.Opt(Ii.NumberNode({integer:!0}))},s=Ii.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:Ii.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Ii.NumberNode({min:0,max:1}),targets:Ii.ListNode(s)},l=Ii.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),d={surface:o({enum:["floor","ceiling"]}),depth:Ti.IntProvider({min:1,max:128}),vertical_range:Ii.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Ii.NumberNode({min:0,max:1}),extra_edge_column_chance:Ii.NumberNode({min:0,max:1}),vegetation_chance:Ii.NumberNode({min:0,max:1}),xz_radius:Ti.IntProvider(),replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Ii.ObjectNode({[Ii.Switch]:["pop",{push:"type"}],[Ii.Case]:{"minecraft:bamboo":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Ti.IntProvider({min:0,max:3}),height:Ti.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Ti.IntProvider({min:0,max:16}),rim_size:Ti.IntProvider({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Ii.NumberNode({integer:!0,min:1,max:512}),height:Ti.IntProvider({min:0,max:128}),radius:Ti.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Ii.NumberNode({integer:!0,min:0,max:64}),height_deviation:Ii.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Ti.IntProvider({min:0,max:128}),density:Ti.FloatProvider({min:0,max:2}),wetness:Ti.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Ii.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Ii.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Ii.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Ii.BooleanNode(),exit:Ii.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Ii.Opt(Ii.BooleanNode()),crystal_beam_target:Ii.Opt(r("block_pos")),spikes:Ii.ListNode(Ii.ObjectNode({centerX:Ii.Opt(Ii.NumberNode({integer:!0})),centerZ:Ii.Opt(Ii.NumberNode({integer:!0})),radius:Ii.Opt(Ii.NumberNode({integer:!0})),height:Ii.Opt(Ii.NumberNode({integer:!0})),guarded:Ii.Opt(Ii.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Ii.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Ii.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Ii.ListNode(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Ii.ListNode(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Di.Processors,overlay_processors:Di.Processors},"minecraft:geode":{blocks:Ii.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:Ii.ListNode(r("block_state")),cannot_replace:o({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:o({validator:"resource",params:{pool:"$tag/block"}})}),layers:Ii.ObjectNode({filling:Ii.Opt(Ii.NumberNode({min:.01,max:50})),inner_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50})),middle_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50})),outer_layer:Ii.Opt(Ii.NumberNode({min:.01,max:50}))}),crack:Ii.ObjectNode({generate_crack_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),base_crack_size:Ii.Opt(Ii.NumberNode({min:0,max:5})),crack_point_offset:Ii.Opt(Ii.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Ii.Opt(Ii.NumberNode({min:0,max:1})),use_potential_placements_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Ii.Opt(Ii.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Ii.Opt(Ii.BooleanNode()),outer_wall_distance:Ii.Opt(Ti.IntProvider({min:1,max:20})),distribution_points:Ii.Opt(Ti.IntProvider({min:1,max:20})),point_offset:Ii.Opt(Ti.IntProvider({min:0,max:10})),min_gen_offset:Ii.Opt(Ii.NumberNode({integer:!0})),max_gen_offset:Ii.Opt(Ii.NumberNode({integer:!0})),invalid_blocks_threshold:Ii.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Ii.Opt(Ii.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Ii.Opt(Ii.NumberNode({min:0,max:1})),can_place_on_floor:Ii.Opt(Ii.BooleanNode()),can_place_on_ceiling:Ii.Opt(Ii.BooleanNode()),can_place_on_wall:Ii.Opt(Ii.BooleanNode()),can_be_placed_on:Ii.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:o({enum:["up","down","north","east","south","west"]}),allow_water:Ii.BooleanNode(),height_distribution:Ii.ListNode(Ii.ObjectNode({weight:Ii.NumberNode({integer:!0}),data:Ti.IntProvider()})),body_provider:r("block_state_provider"),head_provider:r("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Ii.Opt(Ii.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Ii.Opt(Ii.NumberNode({integer:!0,min:1,max:512})),column_radius:Ti.IntProvider({min:0,max:60}),height_scale:Ti.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Ii.NumberNode({min:0,max:1}),stalactite_bluntness:Ti.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Ti.FloatProvider({min:.1,max:10}),wind_speed:Ti.FloatProvider({min:0,max:2}),min_radius_for_wind:Ii.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Ii.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:Ti.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":i,"minecraft:ore":c,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Ii.ListNode(Ii.ObjectNode({chance:Ii.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:Ii.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:Ii.NumberNode({integer:!0,min:1,max:64}),root_radius:Ii.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Ii.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Ii.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Ii.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Ii.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Ii.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Ii.NumberNode({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:Ti.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:Ii.Opt(Ii.ListNode(r("block_state"))),place_in:Ii.Opt(Ii.ListNode(r("block_state"))),place_under:Ii.Opt(Ii.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:Ii.ListNode(l)},"minecraft:small_dripstone":{max_placements:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:Ii.Opt(Ii.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Ii.NumberNode({integer:!0}),hole_count:Ii.NumberNode({integer:!0}),requires_block_below:Ii.BooleanNode(),valid_blocks:Ii.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Ii.Opt(Ii.BooleanNode()),force_dirt:Ii.Opt(Ii.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),sapling_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Ii.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Ii.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Ii.NumberNode({integer:!0,min:0,max:24}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:bending_trunk_placer":{bend_length:Ti.IntProvider({min:1,max:64}),min_height_for_leaves:Ii.Opt(Ii.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Ti.IntProvider({min:0,max:16}),offset:Ti.IntProvider({min:0,max:16}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:blob_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Ii.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Ti.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Ti.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Ti.IntProvider({min:1,max:512}),leaf_placement_attempts:Ii.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Ti.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Ii.ListNode(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Ii.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Ii.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Ii.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Ii.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Ii.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{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",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Ii.Opt(Ii.NumberNode({min:0,max:80})),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:two_layers_feature_size":{limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:81})),lower_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),upper_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:80})),upper_limit:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:80})),lower_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),middle_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16})),upper_size:Ii.Opt(Ii.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:randomized_int_state_provider":{property:o(),values:Ti.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Ii.ListNode(Ii.Mod(Ii.ObjectNode({weight:Ii.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Ii.Mod(Ii.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Ii.Switch]:[{push:"type"}],[Ii.Case]:{"minecraft:column_placer":{size:Ti.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Ei={};Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.initNoiseSettingsSchemas=void 0;const Fi=Be,$i=Ko;Ei.initNoiseSettingsSchemas=function(e,t){const r=Fi.Reference.bind(void 0,e),o=Fi.StringNode.bind(void 0,t);e.register("noise_settings",Fi.Mod(Fi.ObjectNode({name:Fi.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Fi.NumberNode({integer:!0}),bedrock_floor_position:Fi.NumberNode({integer:!0}),sea_level:Fi.NumberNode({integer:!0}),min_surface_level:Fi.NumberNode({integer:!0}),disable_mob_generation:Fi.BooleanNode(),noise_caves_enabled:Fi.BooleanNode(),noodle_caves_enabled:Fi.BooleanNode(),aquifers_enabled:Fi.BooleanNode(),deepslate_enabled:Fi.BooleanNode(),ore_veins_enabled:Fi.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Fi.ObjectNode({min_y:Fi.NumberNode({integer:!0,min:-2048,max:2047}),height:Fi.NumberNode({integer:!0,min:0,max:4096}),density_factor:Fi.NumberNode(),density_offset:Fi.NumberNode(),size_horizontal:Fi.NumberNode({integer:!0}),size_vertical:Fi.NumberNode({integer:!0}),simplex_surface_noise:Fi.BooleanNode(),random_density_offset:Fi.Opt(Fi.BooleanNode()),island_noise_override:Fi.Opt(Fi.BooleanNode()),amplified:Fi.Opt(Fi.BooleanNode()),sampling:Fi.ObjectNode({xz_scale:Fi.NumberNode(),y_scale:Fi.NumberNode(),xz_factor:Fi.NumberNode(),y_factor:Fi.NumberNode()}),bottom_slide:Fi.ObjectNode({target:Fi.NumberNode({integer:!0}),size:Fi.NumberNode({integer:!0,min:0}),offset:Fi.NumberNode({integer:!0})}),top_slide:Fi.ObjectNode({target:Fi.NumberNode({integer:!0}),size:Fi.NumberNode({integer:!0,min:0}),offset:Fi.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>$i.DefaultNoiseSettings,validate:(t,r,o,i)=>{var a,n,s,c;return(null===(a=null==(r=e.validate(t,r,o,i))?void 0:r.noise)||void 0===a?void 0:a.min_y)+(null===(n=null==r?void 0:r.noise)||void 0===n?void 0:n.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("generator_structures",Fi.ObjectNode({stronghold:Fi.Opt(Fi.ObjectNode({distance:Fi.NumberNode({integer:!0,min:0,max:1023}),spread:Fi.NumberNode({integer:!0,min:0,max:1023}),count:Fi.NumberNode({integer:!0,min:1,max:4095})})),structures:Fi.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Fi.Mod(Fi.ObjectNode({spacing:Fi.NumberNode({integer:!0,min:0,max:4096}),separation:Fi.Mod(Fi.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:Fi.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Fi.Mod(Fi.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:Fi.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Ui={};Object.defineProperty(Ui,"__esModule",{value:!0}),Ui.initStructureFeatureSchemas=void 0;const qi=Be;Ui.initStructureFeatureSchemas=function(e,t){const r=qi.StringNode.bind(void 0,t),o=qi.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:qi.NumberNode({integer:!0})};e.register("configured_structure_feature",qi.Mod(qi.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:qi.ObjectNode({[qi.Switch]:["pop",{push:"type"}],[qi.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:qi.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:qi.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:qi.NumberNode({min:0,max:1}),cluster_probability:qi.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:qi.Opt(qi.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 Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.initSurfaceBuilderSchemas=void 0;const Hi=Be;Zi.initSurfaceBuilderSchemas=function(e,t){const r=Hi.StringNode.bind(void 0,t),o=Hi.Reference.bind(void 0,e);e.register("configured_surface_builder",Hi.Mod(Hi.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Hi.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 Wi={};Object.defineProperty(Wi,"__esModule",{value:!0}),Wi.initTemplatePoolSchemas=void 0;const Xi=Be,Yi=Ri;Wi.initTemplatePoolSchemas=function(e,t){const r=Xi.Reference.bind(void 0,e),o=Xi.StringNode.bind(void 0,t);e.register("template_pool",Xi.Mod(Xi.ObjectNode({name:o(),fallback:o(),elements:Xi.ListNode(r("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",Xi.Mod(Xi.ObjectNode({weight:Xi.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Xi.Mod(Xi.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[Xi.Switch]:[{push:"element_type"}],[Xi.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Yi.Processors},"minecraft:list_pool_element":{elements:Xi.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Yi.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(wi,"__esModule",{value:!0}),wi.initWorldgenSchemas=void 0;const Ji=xi,Ki=Si,Gi=Li,Vi=zi,Qi=Ei,ea=Ri,ta=Ui,ra=Zi,oa=Wi;wi.initWorldgenSchemas=function(e,t){ea.initProcessorListSchemas(e,t),Ji.initBiomeSchemas(e,t),Ki.initCarverSchemas(e,t),Gi.initDecoratorSchemas(e,t),Vi.initFeatureSchemas(e,t),Qi.initNoiseSettingsSchemas(e,t),ta.initStructureFeatureSchemas(e,t),ra.initSurfaceBuilderSchemas(e,t),oa.initTemplatePoolSchemas(e,t)};var ia={};Object.defineProperty(ia,"__esModule",{value:!0}),ia.initWorldSettingsSchemas=void 0;const aa=Be;ia.initWorldSettingsSchemas=function(e,t){const r=aa.Reference.bind(void 0,e),o=aa.StringNode.bind(void 0,t);e.register("world_settings",aa.Mod(aa.ObjectNode({generate_features:aa.BooleanNode(),bonus_chest:aa.BooleanNode(),seed:aa.NumberNode({integer:!0}),dimensions:aa.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(Xo,"__esModule",{value:!0}),Xo.initSchemas=void 0;const na=Yo,sa=Ko,ca=Go,la=ei,da=oi,ma=ni,_a=li,pa=ui,ua=hi,fa=gi,ha=yi,ba=Oi,ga=wi,va=ia;Xo.initSchemas=function(e,t){sa.initCommonSchemas(e,t),na.initAdvancementSchemas(e,t),ca.initConditionSchemas(e,t),da.initDimensionTypeSchemas(e,t),la.initDimensionSchemas(e,t),ma.initItemModifierSchemas(e,t),_a.initLootTableSchemas(e,t),pa.initPackMcmetaSchemas(e,t),ua.initPredicatesSchemas(e,t),fa.initRecipeSchemas(e,t),ha.initTagsSchemas(e,t),ba.initTextComponentSchemas(e,t),ga.initWorldgenSchemas(e,t),va.initWorldSettingsSchemas(e,t)};var ya=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Na=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Oa=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&ya(t,e,r);return Na(t,e),t};Object.defineProperty(Ho,"__esModule",{value:!0});var ka=Ho.getSchemas=Ho.getCollections=void 0;const wa=Be,xa=Wo,ja=Xo;var Sa=Ho.lootContext=Oa(di);var Ma=Ho.getCollections=function(){const e=new wa.CollectionRegistry;return xa.initCollections(e),e};ka=Ho.getSchemas=function(e){const t=new wa.SchemaRegistry;return ja.initSchemas(t,e),t};var Pa=Object.freeze(Object.assign(Object.create(null),Ho,{[Symbol.toStringTag]:"Module",get getSchemas(){return ka},get getCollections(){return Ma},lootContext:Sa,default:Ho})),La={},Ca={};Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.initCollections=void 0,Ca.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"])};var Ba={},za={};Object.defineProperty(za,"__esModule",{value:!0}),za.initAdvancementSchemas=void 0;const Ra=Be;za.initAdvancementSchemas=function(e,t){const r=Ra.Reference.bind(void 0,e),o=Ra.StringNode.bind(void 0,t),i=Ra.ChoiceNode([{type:"object",node:Ra.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Ra.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ra.Mod(Ra.ObjectNode({display:Ra.Opt(Ra.Mod(Ra.ObjectNode({icon:Ra.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:Ra.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Ra.Opt(o()),frame:Ra.Opt(o({enum:["task","challenge","goal"]})),show_toast:Ra.Opt(Ra.BooleanNode()),announce_to_chat:Ra.Opt(Ra.BooleanNode()),hidden:Ra.Opt(Ra.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ra.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:Ra.MapNode(o(),r("advancement_criteria")),requirements:Ra.Opt(Ra.ListNode(Ra.ListNode(o()))),rewards:Ra.Opt(Ra.ObjectNode({function:Ra.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:Ra.Opt(Ra.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ra.Opt(Ra.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:Ra.Opt(Ra.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ra.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ra.Opt(Ra.ObjectNode({player:Ra.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ra.Switch]:["pop",{push:"trigger"}],[Ra.Case]:{"minecraft:bee_nest_destroyed":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ra.Opt(Ra.NumberNode({integer:!0})),item:Ra.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Ra.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ra.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:Ra.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ra.Opt(Ra.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Ra.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Ra.Opt(Ra.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),Ra.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Ra.Opt(i)},"minecraft:enter_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),state:Ra.Opt(Ra.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Ra.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ra.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Ra.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:Ra.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Ra.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Ra.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Ra.Opt(Ra.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Ra.Opt(Ra.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Ra.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Ra.Opt(r("item_predicate")),location:Ra.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Ra.Opt(Ra.ListNode(i))},"minecraft:levitation":{distance:Ra.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Ra.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}})),state:Ra.Opt(Ra.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ra.Opt(r("item_predicate")),location:Ra.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ra.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Ra.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Ra.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:Ra.Opt(r("location_predicate")),distance:Ra.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:Ra.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Ra.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ra.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:Ra.Opt(r("entity_predicate")),item:Ra.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Ra.Opt(r("float_bounds"))},"minecraft:used_totem":{item:Ra.Opt(r("item_predicate"))},"minecraft:using_item":{item:Ra.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Ra.Opt(r("entity_predicate")),item:Ra.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:Ra.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Aa={};!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=Be;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 r={"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,random_density_offset:!0,simplex_surface_noise:!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}},octaves:{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]},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]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},e.initCommonSchemas=function(o,i){const a=t.StringNode.bind(void 0,i),n=t.Reference.bind(void 0,o);o.register("block_state",t.Mod(t.ObjectNode({Name:a({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",t.Mod(t.ObjectNode({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const s=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r: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})}]));o.register("int_bounds",s(!0)),o.register("float_bounds",s()),o.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(n("number_provider")),max:t.Opt(n("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,o,i,n,s,c)=>{let l={};n&&Object.keys(c[n]).forEach((e=>{l[e]=t.Mod(c[n][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(m({type:t.Mod(t.Opt(a({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:c},l),{context:s,disableSwitchContext:!0}),_=[{type:r,node:c[i][o]}];return n&&_.push({type:"object",priority:-1,node:d}),Object.keys(c).forEach((e=>{_.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(_,{context:s,choiceContext:`${s}.type`})};o.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:a({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),o.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(a({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(a({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()})}}),o.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(m({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e)),source:n("int_provider")})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:n("int_provider")}))}}),o.register("int_provider",e.IntProvider()),o.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 r,o,i;return{[e]:null!==(i=null!==(o=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),o.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("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"}),o.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=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("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:n("location_predicate")},"minecraft:match_tool":{predicate:n("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:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=a({enum:"copy_source"}),o=a({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({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:r},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(a({enum:"map_feature"})),decoration:t.Opt(a({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:o},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(o),lore:t.ListNode(n("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(o),name:t.Opt(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:a({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},c={};return i.get("loot_function_type").forEach((t=>{c[t]=m(m({},s[t]),e)})),c},e.DimensionTypePresets=r=>t.ObjectOrPreset(a({validator:"resource",params:{pool:"$dimension_type"}}),r,{"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=o=>t.ObjectOrPreset(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),o,{"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,simplex_surface_noise:!1,use_legacy_random:!0,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}},octaves:{erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]}},structures:{structures:r}},"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,simplex_surface_noise:!0,use_legacy_random:!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}},octaves:{erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]}},structures:{structures:r}},"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,random_density_offset:!0,simplex_surface_noise:!0,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}},octaves:{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]},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]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"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,simplex_surface_noise:!1,use_legacy_random:!0,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}},octaves:{erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"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,simplex_surface_noise:!0,use_legacy_random:!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}},octaves:{erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]},temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]}},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}}})}}(Aa);var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0}),Ia.initConditionSchemas=void 0;const Ta=Be,Da=Aa;Ia.initConditionSchemas=function(e,t){const r=Ta.Reference.bind(void 0,e),o=Ta.StringNode.bind(void 0,t);e.register("predicate",Ta.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Ta.Mod(Ta.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Ta.Switch]:[{push:"condition"}],[Ta.Case]:Da.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ea={};Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initDimensionSchemas=void 0;const Fa=Be,$a=Aa;Ea.initDimensionSchemas=function(e,t){const r=Fa.Reference.bind(void 0,e),o=Fa.StringNode.bind(void 0,t);e.register("dimension",Fa.Mod(Fa.ObjectNode({type:$a.DimensionTypePresets(r("dimension_type")),generator:Fa.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Fa.Switch]:[{push:"type"}],[Fa.Case]:{"minecraft:noise":{seed:Fa.NumberNode({integer:!0}),settings:$a.NoiseSettingsPresets(r("noise_settings")),biome_source:Fa.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Fa.Switch]:[{push:"type"}],[Fa.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Fa.Opt(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Fa.Mod(Fa.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Fa.Opt(Fa.NumberNode({integer:!0,min:0,max:62})),biomes:Fa.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Fa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Fa.ObjectNode({biome:Fa.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Fa.Opt(Fa.BooleanNode()),features:Fa.Opt(Fa.BooleanNode()),layers:Fa.ListNode(r("generator_layer")),structures:r("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 i=Fa.ChoiceNode([{type:"number",node:Fa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Fa.ListNode(Fa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Fa.Mod(Fa.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Fa.ObjectNode({temperature:i,humidity:i,continentalness:i,erosion:i,weirdness:i,depth:i,offset:Fa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initDimensionTypeSchemas=void 0;const qa=Be,Za=Aa;Ua.initDimensionTypeSchemas=function(e,t){const r=qa.StringNode.bind(void 0,t);e.register("dimension_type",qa.Mod(qa.ObjectNode({ultrawarm:qa.BooleanNode(),natural:qa.BooleanNode(),piglin_safe:qa.BooleanNode(),respawn_anchor_works:qa.BooleanNode(),bed_works:qa.BooleanNode(),has_raids:qa.BooleanNode(),has_skylight:qa.BooleanNode(),has_ceiling:qa.BooleanNode(),coordinate_scale:qa.NumberNode({min:1e-5,max:3e7}),ambient_light:qa.NumberNode(),fixed_time:qa.Opt(qa.NumberNode({integer:!0})),logical_height:qa.NumberNode({integer:!0,min:0,max:4096}),effects:qa.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:qa.NumberNode({integer:!0,min:-2048,max:2047}),height:qa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Za.DefaultDimensionType,validate:(t,r,o,i)=>((null==(r=e.validate(t,r,o,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initItemModifierSchemas=void 0;const Wa=Be,Xa=Aa;Ha.initItemModifierSchemas=function(e,t){const r=Wa.Reference.bind(void 0,e),o=Wa.StringNode.bind(void 0,t);e.register("item_modifier",Wa.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:Wa.Opt(Wa.ListNode(r("condition")))};e.register("function",Wa.Mod(Wa.ObjectNode({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[Wa.Switch]:[{push:"function"}],[Wa.Case]:Xa.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ya={},Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.LootFunctions=Ja.LootConditions=Ja.LootCopySources=Ja.LootEntitySources=Ja.LootTableTypes=void 0,Ja.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]}]]),Ja.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ja.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ja.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",[]]]),Ja.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(Ya,"__esModule",{value:!0}),Ya.initLootTableSchemas=void 0;const Ka=Be,Ga=Ja,Va=Aa;Ya.initLootTableSchemas=function(e,t){const r=Ka.Reference.bind(void 0,e),o=Ka.StringNode.bind(void 0,t),i={conditions:Ka.Opt(Ka.ListNode(r("loot_condition")))},a=m({functions:Ka.Opt(Ka.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:s}]of Ga.LootTableTypes){const e=[...n,...s];i.push({match:e=>e.getModel().get(new Ka.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),Ka.SwitchNode(i)}const s=n(Ga.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),c=n(Ga.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(Ga.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(Ga.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",Ka.Mod(Ka.ObjectNode({type:Ka.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ka.Opt(Ka.ListNode(Ka.Mod(Ka.ObjectNode(m({rolls:r("number_provider"),bonus_rolls:Ka.Opt(r("number_provider")),entries:Ka.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ka.Opt(Ka.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={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",Ka.Mod(Ka.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ka.Opt(Ka.Mod(Ka.NumberNode({integer:!0,min:1}),_)),quality:Ka.Opt(Ka.Mod(Ka.NumberNode({integer:!0}),_)),[Ka.Switch]:[{push:"type"}],[Ka.Case]:{"minecraft:alternatives":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:Ka.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:Ka.Opt(Ka.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ka.Mod(Ka.ObjectNode({function:c,[Ka.Switch]:[{push:"function"}],[Ka.Case]:Va.FunctionCases(i,d,l)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ka.Mod(Ka.ObjectNode({condition:s,[Ka.Switch]:[{push:"condition"}],[Ka.Case]:Va.ConditionCases(l)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ka.Mod(Ka.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:r("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:Ka.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Qa={};Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.initPackMcmetaSchemas=void 0;const en=Be;Qa.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:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:en.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initPredicatesSchemas=void 0;const rn=Be;tn.initPredicatesSchemas=function(e,t){const r=rn.Reference.bind(void 0,e),o=rn.StringNode.bind(void 0,t),i=rn.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:rn.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:rn.ObjectNode({min:rn.Opt(rn.NumberNode({integer:!0})),max:rn.Opt(rn.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:rn.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",rn.ObjectNode({items:rn.Opt(rn.ListNode(o({validator:"resource",params:{pool:"item"}}))),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:rn.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:rn.Opt(rn.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",rn.ObjectNode({enchantment:rn.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",rn.ObjectNode({blocks:rn.Opt(rn.ListNode(o({validator:"resource",params:{pool:"block"}}))),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:rn.Opt(rn.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",rn.ObjectNode({fluid:rn.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:rn.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:rn.Opt(rn.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",rn.ObjectNode({position:rn.Opt(rn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:rn.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:rn.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:rn.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:rn.Opt(rn.ObjectNode({light:r("int_bounds")})),smokey:rn.Opt(rn.BooleanNode()),block:rn.Opt(r("block_predicate")),fluid:rn.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",rn.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:r("int_bounds"),[rn.Switch]:[{push:"type"}],[rn.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",rn.ObjectNode({gamemode:rn.Opt(o({enum:"gamemode"})),level:r("int_bounds"),advancements:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),rn.ChoiceNode([{type:"boolean",node:rn.BooleanNode(),change:e=>!0},{type:"object",node:rn.MapNode(o(),rn.BooleanNode())}]))),recipes:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),rn.BooleanNode())),stats:rn.Opt(rn.ListNode(r("statistic_predicate"))),looking_at:rn.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",rn.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:rn.Opt(rn.BooleanNode()),visible:rn.Opt(rn.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",rn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",rn.ObjectNode({type:rn.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:rn.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:rn.Opt(o({validator:"team"})),location:rn.Opt(r("location_predicate")),stepping_on:rn.Opt(r("location_predicate")),distance:rn.Opt(r("distance_predicate")),flags:rn.Opt(rn.ObjectNode({is_on_fire:rn.Opt(rn.BooleanNode()),is_sneaking:rn.Opt(rn.BooleanNode()),is_sprinting:rn.Opt(rn.BooleanNode()),is_swimming:rn.Opt(rn.BooleanNode()),is_baby:rn.Opt(rn.BooleanNode())})),equipment:rn.Opt(rn.MapNode(o({enum:"slot"}),r("item_predicate"))),player:rn.Opt(r("player_predicate")),vehicle:rn.Opt(r("entity_predicate")),passenger:rn.Opt(r("entity_predicate")),targeted_entity:rn.Opt(r("entity_predicate")),lightning_bolt:rn.Opt(rn.ObjectNode({blocks_set_on_fire:rn.Opt(r("int_bounds")),entity_struck:rn.Opt(r("entity_predicate"))})),fishing_hook:rn.Opt(rn.ObjectNode({in_open_water:rn.Opt(rn.BooleanNode())})),effects:rn.Opt(rn.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",rn.ObjectNode({is_explosion:rn.Opt(rn.BooleanNode()),is_fire:rn.Opt(rn.BooleanNode()),is_magic:rn.Opt(rn.BooleanNode()),is_projectile:rn.Opt(rn.BooleanNode()),is_lightning:rn.Opt(rn.BooleanNode()),bypasses_armor:rn.Opt(rn.BooleanNode()),bypasses_invulnerability:rn.Opt(rn.BooleanNode()),bypasses_magic:rn.Opt(rn.BooleanNode()),source_entity:rn.Opt(r("entity_predicate")),direct_entity:rn.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",rn.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:rn.Opt(rn.BooleanNode()),source_entity:rn.Opt(r("entity_predicate")),type:rn.Opt(r("damage_source_predicate"))},{context:"damage"}))};var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.initRecipeSchemas=void 0;const an=Be;on.initRecipeSchemas=function(e,t){const r=an.Reference.bind(void 0,e),o=an.StringNode.bind(void 0,t);e.register("recipe",an.Mod(an.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[an.Switch]:[{push:"type"}],[an.Case]:{"minecraft:crafting_shaped":{group:an.Opt(o({enum:"recipe_group",additional:!0})),pattern:an.ListNode(o()),key:an.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:an.Opt(o()),ingredients:an.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:an.Opt(an.NumberNode()),cookingtime:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:an.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:an.NumberNode({integer:!0})},"minecraft:smithing":{group:an.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",an.Mod(an.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:an.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",an.Mod(an.ObjectNode({item:an.Opt(o({validator:"resource",params:{pool:"item"}})),tag:an.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",an.Mod(an.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:an.Opt(an.Mod(an.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.initTagsSchemas=void 0;const sn=Be;nn.initTagsSchemas=function(e,t){const r=sn.StringNode.bind(void 0,t),o=e=>sn.Mod(sn.ObjectNode({replace:sn.Opt(sn.BooleanNode()),values:sn.ListNode(sn.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:sn.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:sn.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))};var cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.initTextComponentSchemas=void 0;const ln=Be;cn.initTextComponentSchemas=function(e,t){const r=ln.Reference.bind(void 0,e),o=ln.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(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",ln.Mod(ln.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:ln.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ln.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:ln.Opt(o()),font:ln.Opt(o()),bold:ln.Opt(ln.BooleanNode()),italic:ln.Opt(ln.BooleanNode()),underlined:ln.Opt(ln.BooleanNode()),strikethrough:ln.Opt(ln.BooleanNode()),obfuscated:ln.Opt(ln.BooleanNode()),insertion:ln.Opt(o()),clickEvent:ln.Opt(ln.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ln.Switch]:[{push:"action"}],[ln.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ln.Opt(ln.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[ln.Switch]:[{push:"action"}],[ln.Case]:{show_text:{value:ln.Opt(r("text_component")),contents:ln.Opt(r("text_component"))},show_item:{value:ln.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:ln.Opt(ln.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:ln.Opt(ln.NumberNode({integer:!0})),tag:ln.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:ln.Opt(ln.ObjectNode({name:ln.Opt(o()),type:ln.Opt(o()),id:ln.Opt(o())})),contents:ln.Opt(ln.Mod(ln.ObjectNode({name:ln.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:ln.Opt(r("text_component_list"))};e.register("text_component_object",ln.Mod(ln.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ln.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ln.ObjectNode(m({translate:o(),with:ln.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ln.ObjectNode(m({score:ln.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:ln.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ln.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:ln.Opt(r("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ln.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ln.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:ln.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ln.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ln.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:ln.Opt(ln.BooleanNode()),separator:ln.Opt(r("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ln.Mod(ln.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var dn={},mn={};Object.defineProperty(mn,"__esModule",{value:!0}),mn.initBiomeSchemas=void 0;const _n=Be;mn.initBiomeSchemas=function(e,t){const r=_n.StringNode.bind(void 0,t);e.register("biome",_n.Mod(_n.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),temperature:_n.NumberNode(),downfall:_n.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:_n.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:_n.Opt(_n.BooleanNode()),creature_spawn_probability:_n.Opt(_n.NumberNode({min:0,max:1})),effects:_n.ObjectNode({sky_color:_n.NumberNode({color:!0}),fog_color:_n.NumberNode({color:!0}),water_color:_n.NumberNode({color:!0}),water_fog_color:_n.NumberNode({color:!0}),grass_color:_n.Opt(_n.NumberNode({color:!0})),foliage_color:_n.Opt(_n.NumberNode({color:!0})),grass_color_modifier:_n.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:_n.Opt(r()),mood_sound:_n.Opt(_n.ObjectNode({sound:r(),tick_delay:_n.NumberNode({integer:!0}),block_search_extent:_n.NumberNode({integer:!0}),offset:_n.NumberNode()})),additions_sound:_n.Opt(_n.ObjectNode({sound:r(),tick_chance:_n.NumberNode({min:0,max:1})})),music:_n.Opt(_n.ObjectNode({sound:r(),min_delay:_n.NumberNode({integer:!0,min:0}),max_delay:_n.NumberNode({integer:!0,min:0}),replace_current_music:_n.BooleanNode()})),particle:_n.Opt(_n.ObjectNode({options:_n.ObjectNode({type:r()}),probability:_n.NumberNode({min:0,max:1})}))}),spawners:_n.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),_n.Mod(_n.ListNode(_n.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:_n.NumberNode({integer:!0}),minCount:_n.NumberNode({integer:!0}),maxCount:_n.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:_n.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),_n.Mod(_n.ObjectNode({energy_budget:_n.NumberNode(),charge:_n.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:_n.MapNode(r({enum:["air","liquid"]}),_n.Mod(_n.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:_n.ListNode(_n.Mod(_n.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initCarverSchemas=void 0;const un=Be,fn=Aa;pn.initCarverSchemas=function(e,t){const r=un.Reference.bind(void 0,e),o=un.StringNode.bind(void 0,t),i={vertical_rotation:fn.FloatProvider(),shape:un.ObjectNode({distance_factor:fn.FloatProvider(),thickness:fn.FloatProvider(),width_smoothness:un.NumberNode({integer:!0,min:0}),horizontal_radius_factor:fn.FloatProvider(),vertical_radius_default_factor:un.NumberNode(),vertical_radius_center_factor:un.NumberNode()})},a={horizontal_radius_multiplier:fn.FloatProvider(),vertical_radius_multiplier:fn.FloatProvider(),floor_level:fn.FloatProvider({min:-1,max:1})};e.register("configured_carver",un.Mod(un.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:un.ObjectNode({probability:un.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:fn.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:un.Opt(un.ObjectNode({debug_mode:un.Opt(un.BooleanNode()),air_state:un.Opt(r("block_state")),water_state:un.Opt(r("block_state")),lava_state:un.Opt(r("block_state")),barrier_state:un.Opt(r("block_state"))})),[un.Switch]:["pop",{push:"type"}],[un.Case]:{"minecraft:canyon":i,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var hn={};Object.defineProperty(hn,"__esModule",{value:!0}),hn.initDecoratorSchemas=void 0;const bn=Be,gn=Aa;hn.initDecoratorSchemas=function(e,t){const r=bn.Reference.bind(void 0,e),o=bn.StringNode.bind(void 0,t),i={count:gn.IntProvider({min:0,max:256})};e.register("configured_decorator",bn.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:bn.ObjectNode({[bn.Switch]:["pop",{push:"type"}],[bn.Case]:{"minecraft:block_filter":{predicate:r("block_predicate_worldgen")},"minecraft:block_survives_filter":{state:r("block_state")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:cave_surface":{surface:o({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:bn.NumberNode({integer:!0})},"minecraft:chance":{chance:bn.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:bn.NumberNode({integer:!0,min:0}),extra_count:bn.NumberNode({integer:!0,min:0}),extra_chance:bn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:bn.NumberNode(),below_noise:bn.NumberNode({integer:!0}),above_noise:bn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:bn.NumberNode({integer:!0}),noise_factor:bn.NumberNode(),noise_offset:bn.Opt(bn.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:bn.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen")},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:bn.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:surface_relative_threshold":{heightmap:o({enum:"heightmap_type"}),min_inclusive:bn.Opt(bn.NumberNode({integer:!0})),max_inclusive:bn.Opt(bn.NumberNode({integer:!0}))},"minecraft:water_depth_threshold":{max_water_depth:bn.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var vn={},yn={};Object.defineProperty(yn,"__esModule",{value:!0}),yn.initProcessorListSchemas=yn.Processors=void 0;const Nn=Be;yn.initProcessorListSchemas=function(e,t){const r=Nn.Reference.bind(void 0,e),o=Nn.StringNode.bind(void 0,t);yn.Processors=Nn.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Nn.Mod(Nn.ObjectNode({processors:Nn.ListNode(r("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:o({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(r("block_state"))},"minecraft:block_rot":{integrity:Nn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Nn.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Nn.ListNode(r("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(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Nn.Opt(o({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 i={min_dist:Nn.Opt(Nn.NumberNode({min:0,max:255,integer:!0})),max_dist:Nn.Opt(Nn.NumberNode({min:0,max:255,integer:!0})),min_chance:Nn.Opt(Nn.NumberNode({min:0,max:1})),max_chance:Nn.Opt(Nn.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Nn.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Nn.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Nn.Switch]:[{push:"predicate_type"}],[Nn.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Nn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Nn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(vn,"__esModule",{value:!0}),vn.initFeatureSchemas=void 0;const On=Be,kn=Aa,wn=yn;vn.initFeatureSchemas=function(e,t){const r=On.Reference.bind(void 0,e),o=On.StringNode.bind(void 0,t),i=On.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),a={tries:On.Opt(On.NumberNode({integer:!0,min:1})),xz_spread:On.Opt(On.NumberNode({integer:!0,min:0})),y_spread:On.Opt(On.NumberNode({integer:!0,min:0})),only_in_air:On.BooleanNode(),allowed_on:On.ListNode(r("block_state")),disallowed_on:On.ListNode(r("block_state")),feature:i},n={state:r("block_state"),radius:kn.IntProvider({min:0,max:8}),half_height:On.NumberNode({integer:!0,min:0,max:4}),targets:On.ListNode(r("block_state"))},s={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:On.Opt(On.NumberNode({integer:!0}))},c=On.ObjectNode({target:r("rule_test"),state:r("block_state")}),l={size:On.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:On.NumberNode({min:0,max:1}),targets:On.ListNode(c)},d={surface:o({enum:["floor","ceiling"]}),depth:kn.IntProvider({min:1,max:128}),vertical_range:On.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:On.NumberNode({min:0,max:1}),extra_edge_column_chance:On.NumberNode({min:0,max:1}),vegetation_chance:On.NumberNode({min:0,max:1}),xz_radius:kn.IntProvider(),replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:i};e.register("configured_feature",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:On.ObjectNode({[On.Switch]:["pop",{push:"type"}],[On.Case]:{"minecraft:bamboo":{probability:On.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:kn.IntProvider({min:0,max:3}),height:kn.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allow_water:On.BooleanNode(),prioritize_tip:On.BooleanNode(),layers:On.ListNode(On.ObjectNode({height:On.NumberNode({integer:!0,min:0}),state:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:i},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:i},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:kn.IntProvider({min:0,max:16}),rim_size:kn.IntProvider({min:0,max:16})},"minecraft:disk":n,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:On.NumberNode({integer:!0,min:1,max:512}),height:kn.IntProvider({min:0,max:128}),radius:kn.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:On.NumberNode({integer:!0,min:0,max:64}),height_deviation:On.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:kn.IntProvider({min:0,max:128}),density:kn.FloatProvider({min:0,max:2}),wetness:kn.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:On.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:On.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:On.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:On.BooleanNode(),exit:On.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:On.Opt(On.BooleanNode()),crystal_beam_target:On.Opt(r("block_pos")),spikes:On.ListNode(On.ObjectNode({centerX:On.Opt(On.NumberNode({integer:!0})),centerZ:On.Opt(On.NumberNode({integer:!0})),radius:On.Opt(On.NumberNode({integer:!0})),height:On.Opt(On.NumberNode({integer:!0})),guarded:On.Opt(On.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:On.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:On.NumberNode({integer:!0,min:0,max:7}),fossil_structures:On.ListNode(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:On.ListNode(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:wn.Processors,overlay_processors:wn.Processors},"minecraft:geode":{blocks:On.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:On.ListNode(r("block_state")),cannot_replace:o({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:o({validator:"resource",params:{pool:"$tag/block"}})}),layers:On.ObjectNode({filling:On.Opt(On.NumberNode({min:.01,max:50})),inner_layer:On.Opt(On.NumberNode({min:.01,max:50})),middle_layer:On.Opt(On.NumberNode({min:.01,max:50})),outer_layer:On.Opt(On.NumberNode({min:.01,max:50}))}),crack:On.ObjectNode({generate_crack_chance:On.Opt(On.NumberNode({min:0,max:1})),base_crack_size:On.Opt(On.NumberNode({min:0,max:5})),crack_point_offset:On.Opt(On.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:On.Opt(On.NumberNode({min:0,max:1})),use_potential_placements_chance:On.Opt(On.NumberNode({min:0,max:1})),use_alternate_layer0_chance:On.Opt(On.NumberNode({min:0,max:1})),placements_require_layer0_alternate:On.Opt(On.BooleanNode()),outer_wall_distance:On.Opt(kn.IntProvider({min:1,max:20})),distribution_points:On.Opt(kn.IntProvider({min:1,max:20})),point_offset:On.Opt(kn.IntProvider({min:0,max:10})),min_gen_offset:On.Opt(On.NumberNode({integer:!0})),max_gen_offset:On.Opt(On.NumberNode({integer:!0})),invalid_blocks_threshold:On.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:On.Opt(On.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:On.Opt(On.NumberNode({min:0,max:1})),can_place_on_floor:On.Opt(On.BooleanNode()),can_place_on_ceiling:On.Opt(On.BooleanNode()),can_place_on_wall:On.Opt(On.BooleanNode()),can_be_placed_on:On.ListNode(r("block_state"))},"minecraft:huge_brown_mushroom":s,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:On.Opt(On.BooleanNode())},"minecraft:huge_red_mushroom":s,"minecraft:ice_patch":n,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:On.Opt(On.NumberNode({integer:!0,min:1,max:512})),column_radius:kn.IntProvider({min:0,max:60}),height_scale:kn.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:On.NumberNode({min:0,max:1}),stalactite_bluntness:kn.FloatProvider({min:.1,max:10}),stalagmite_bluntness:kn.FloatProvider({min:.1,max:10}),wind_speed:kn.FloatProvider({min:0,max:2}),min_radius_for_wind:On.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:On.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:kn.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":l,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:i,feature_true:i},"minecraft:random_selector":{features:On.ListNode(On.ObjectNode({chance:On.NumberNode({min:0,max:1}),feature:i})),default:i},"minecraft:replace_single_block":{targets:On.ListNode(c)},"minecraft:root_system":{required_vertical_space_for_tree:On.NumberNode({integer:!0,min:1,max:64}),root_radius:On.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:On.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:On.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:On.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:On.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:On.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:On.NumberNode({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:i},"minecraft:scattered_ore":l,"minecraft:sea_pickle":{count:kn.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:On.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:On.ListNode(i)},"minecraft:small_dripstone":{max_placements:On.Opt(On.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:On.Opt(On.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:On.Opt(On.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:On.Opt(On.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:On.NumberNode({integer:!0}),hole_count:On.NumberNode({integer:!0}),requires_block_below:On.BooleanNode(),valid_blocks:On.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:On.Opt(On.BooleanNode()),force_dirt:On.Opt(On.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:On.NumberNode({integer:!0,min:0,max:32}),height_rand_a:On.NumberNode({integer:!0,min:0,max:24}),height_rand_b:On.NumberNode({integer:!0,min:0,max:24}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:bending_trunk_placer":{bend_length:kn.IntProvider({min:1,max:64}),min_height_for_leaves:On.Opt(On.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:kn.IntProvider({min:0,max:16}),offset:kn.IntProvider({min:0,max:16}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:blob_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:On.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:kn.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:kn.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:kn.IntProvider({min:1,max:512}),leaf_placement_attempts:On.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:kn.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:On.ListNode(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:On.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:On.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:On.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:On.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:On.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{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",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:On.Opt(On.NumberNode({min:0,max:80})),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:two_layers_feature_size":{limit:On.Opt(On.NumberNode({integer:!0,min:0,max:81})),lower_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),upper_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:On.Opt(On.NumberNode({integer:!0,min:0,max:80})),upper_limit:On.Opt(On.NumberNode({integer:!0,min:0,max:80})),lower_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),middle_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16})),upper_size:On.Opt(On.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const p={seed:On.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:On.Mod(On.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:dual_noise_provider":_(m({},p),{variety:kn.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:On.Mod(On.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:On.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":_(m({},p),{threshold:On.NumberNode({min:-1,max:1}),high_chance:On.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:On.ListNode(r("block_state")),high_states:On.ListNode(r("block_state"))}),"minecraft:noise_provider":_(m({},p),{states:On.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:kn.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:On.ListNode(On.Mod(On.ObjectNode({weight:On.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_predicate_worldgen",On.Mod(On.ObjectNode({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[On.Switch]:[{push:"type"}],[On.Case]:{"minecraft:all_of":{predicates:On.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:On.ListNode(r("block_predicate_worldgen"))},"minecraft:matching_blocks":{offset:r("block_pos"),blocks:On.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:matching_fluids":{offset:r("block_pos"),fluids:On.ListNode(o({validator:"resource",params:{pool:"fluid"}}))},"minecraft:not":{predicate:r("block_predicate_worldgen")}}},{context:"block_predicate"}),{default:()=>({type:"minecraft:matching_blocks"})}))};var xn={};Object.defineProperty(xn,"__esModule",{value:!0}),xn.initNoiseSettingsSchemas=void 0;const jn=Be,Sn=Aa;xn.initNoiseSettingsSchemas=function(e,t){const r=jn.Reference.bind(void 0,e),o=jn.StringNode.bind(void 0,t);e.register("noise_settings",jn.Mod(jn.ObjectNode({bedrock_roof_position:jn.NumberNode({integer:!0}),bedrock_floor_position:jn.NumberNode({integer:!0}),sea_level:jn.NumberNode({integer:!0}),disable_mob_generation:jn.BooleanNode(),noise_caves_enabled:jn.BooleanNode(),noodle_caves_enabled:jn.BooleanNode(),aquifers_enabled:jn.BooleanNode(),deepslate_enabled:jn.BooleanNode(),ore_veins_enabled:jn.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:jn.ObjectNode({min_y:jn.NumberNode({integer:!0,min:-2048,max:2047}),height:jn.NumberNode({integer:!0,min:0,max:4096}),density_factor:jn.NumberNode(),density_offset:jn.NumberNode(),size_horizontal:jn.NumberNode({integer:!0}),size_vertical:jn.NumberNode({integer:!0}),simplex_surface_noise:jn.BooleanNode(),random_density_offset:jn.Opt(jn.BooleanNode()),island_noise_override:jn.Opt(jn.BooleanNode()),amplified:jn.Opt(jn.BooleanNode()),use_legacy_random:jn.Opt(jn.BooleanNode()),sampling:jn.ObjectNode({xz_scale:jn.NumberNode(),y_scale:jn.NumberNode(),xz_factor:jn.NumberNode(),y_factor:jn.NumberNode()}),bottom_slide:r("noise_slider"),top_slide:r("noise_slider")}),octaves:jn.ObjectNode({temperature:r("noise_parameters"),humidity:r("noise_parameters"),continentalness:r("noise_parameters"),erosion:r("noise_parameters"),weirdness:r("noise_parameters"),shift:r("noise_parameters")}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>Sn.DefaultNoiseSettings,validate:(t,r,o,i)=>{var a,n,s,c;return(null===(a=null==(r=e.validate(t,r,o,i))?void 0:r.noise)||void 0===a?void 0:a.min_y)+(null===(n=null==r?void 0:r.noise)||void 0===n?void 0:n.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("noise_slider",jn.ObjectNode({target:jn.NumberNode(),size:jn.NumberNode({integer:!0,min:0}),offset:jn.NumberNode({integer:!0})})),e.register("generator_structures",jn.ObjectNode({stronghold:jn.Opt(jn.ObjectNode({distance:jn.NumberNode({integer:!0,min:0,max:1023}),spread:jn.NumberNode({integer:!0,min:0,max:1023}),count:jn.NumberNode({integer:!0,min:1,max:4095})})),structures:jn.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),jn.Mod(jn.ObjectNode({spacing:jn.NumberNode({integer:!0,min:0,max:4096}),separation:jn.Mod(jn.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:jn.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",jn.Mod(jn.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:jn.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Mn={};Object.defineProperty(Mn,"__esModule",{value:!0}),Mn.initStructureFeatureSchemas=void 0;const Pn=Be;Mn.initStructureFeatureSchemas=function(e,t){const r=Pn.StringNode.bind(void 0,t),o=Pn.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Pn.NumberNode({integer:!0})};e.register("configured_structure_feature",Pn.Mod(Pn.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Pn.ObjectNode({[Pn.Switch]:["pop",{push:"type"}],[Pn.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Pn.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Pn.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Pn.NumberNode({min:0,max:1}),cluster_probability:Pn.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Pn.Opt(Pn.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 Ln={};Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initSurfaceBuilderSchemas=void 0;const Cn=Be;Ln.initSurfaceBuilderSchemas=function(e,t){const r=Cn.StringNode.bind(void 0,t),o=Cn.Reference.bind(void 0,e);e.register("configured_surface_builder",Cn.Mod(Cn.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Cn.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 Bn={};Object.defineProperty(Bn,"__esModule",{value:!0}),Bn.initTemplatePoolSchemas=void 0;const zn=Be,Rn=yn;Bn.initTemplatePoolSchemas=function(e,t){const r=zn.Reference.bind(void 0,e),o=zn.StringNode.bind(void 0,t);e.register("template_pool",zn.Mod(zn.ObjectNode({fallback:o(),elements:zn.ListNode(r("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",zn.Mod(zn.ObjectNode({weight:zn.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",zn.Mod(zn.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[zn.Switch]:[{push:"element_type"}],[zn.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Rn.Processors},"minecraft:list_pool_element":{elements:zn.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Rn.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(dn,"__esModule",{value:!0}),dn.initWorldgenSchemas=void 0;const An=mn,In=pn,Tn=hn,Dn=vn,En=xn,Fn=yn,$n=Mn,Un=Ln,qn=Bn;dn.initWorldgenSchemas=function(e,t){Fn.initProcessorListSchemas(e,t),An.initBiomeSchemas(e,t),In.initCarverSchemas(e,t),Tn.initDecoratorSchemas(e,t),Dn.initFeatureSchemas(e,t),En.initNoiseSettingsSchemas(e,t),$n.initStructureFeatureSchemas(e,t),Un.initSurfaceBuilderSchemas(e,t),qn.initTemplatePoolSchemas(e,t)};var Zn={};Object.defineProperty(Zn,"__esModule",{value:!0}),Zn.initWorldSettingsSchemas=void 0;const Hn=Be;Zn.initWorldSettingsSchemas=function(e,t){const r=Hn.Reference.bind(void 0,e),o=Hn.StringNode.bind(void 0,t);e.register("world_settings",Hn.Mod(Hn.ObjectNode({generate_features:Hn.BooleanNode(),bonus_chest:Hn.BooleanNode(),seed:Hn.NumberNode({integer:!0}),dimensions:Hn.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("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(Ba,"__esModule",{value:!0}),Ba.initSchemas=void 0;const Wn=za,Xn=Aa,Yn=Ia,Jn=Ea,Kn=Ua,Gn=Ha,Vn=Ya,Qn=Qa,es=tn,ts=on,rs=nn,os=cn,is=dn,as=Zn;Ba.initSchemas=function(e,t){Xn.initCommonSchemas(e,t),Wn.initAdvancementSchemas(e,t),Yn.initConditionSchemas(e,t),Kn.initDimensionTypeSchemas(e,t),Jn.initDimensionSchemas(e,t),Gn.initItemModifierSchemas(e,t),Vn.initLootTableSchemas(e,t),Qn.initPackMcmetaSchemas(e,t),es.initPredicatesSchemas(e,t),ts.initRecipeSchemas(e,t),rs.initTagsSchemas(e,t),os.initTextComponentSchemas(e,t),is.initWorldgenSchemas(e,t),as.initWorldSettingsSchemas(e,t)};var ns=Ce&&Ce.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),ss=Ce&&Ce.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cs=Ce&&Ce.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&ns(t,e,r);return ss(t,e),t};Object.defineProperty(La,"__esModule",{value:!0});var ls=La.getSchemas=La.getCollections=void 0;const ds=Be,ms=Ca,_s=Ba;var ps=La.lootContext=cs(Ja);var us=La.getCollections=function(){const e=new ds.CollectionRegistry;return ms.initCollections(e),e};ls=La.getSchemas=function(e){const t=new ds.SchemaRegistry;return _s.initSchemas(t,e),t};var fs=Object.freeze(Object.assign(Object.create(null),La,{[Symbol.toStringTag]:"Module",get getSchemas(){return ls},get getCollections(){return us},lootContext:ps,default:La})),hs=function(e){return(e=e||{}).circles?function(e){var t=[],r=[];return e.proto?function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return o(i,e);if(i instanceof Map)return new Map(o(Array.from(i),e));if(i instanceof Set)return new Set(o(Array.from(i),e));var a={};for(var n in t.push(i),r.push(a),i){var s=i[n];if("object"!=typeof s||null===s)a[n]=s;else if(s instanceof Date)a[n]=new Date(s);else if(s instanceof Map)a[n]=new Map(o(Array.from(s),e));else if(s instanceof Set)a[n]=new Set(o(Array.from(s),e));else if(ArrayBuffer.isView(s))a[n]=bs(s);else{var c=t.indexOf(s);a[n]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),a}:function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return o(i,e);if(i instanceof Map)return new Map(o(Array.from(i),e));if(i instanceof Set)return new Set(o(Array.from(i),e));var a={};for(var n in t.push(i),r.push(a),i)if(!1!==Object.hasOwnProperty.call(i,n)){var s=i[n];if("object"!=typeof s||null===s)a[n]=s;else if(s instanceof Date)a[n]=new Date(s);else if(s instanceof Map)a[n]=new Map(o(Array.from(s),e));else if(s instanceof Set)a[n]=new Set(o(Array.from(s),e));else if(ArrayBuffer.isView(s))a[n]=bs(s);else{var c=t.indexOf(s);a[n]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),a};function o(e,o){for(var i=Object.keys(e),a=new Array(i.length),n=0;n=0;)e[t]=0}const vs=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]),ys=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]),Ns=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Os=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ks=new Array(576);gs(ks);const ws=new Array(60);gs(ws);const xs=new Array(512);gs(xs);const js=new Array(256);gs(js);const Ss=new Array(29);gs(Ss);const Ms=new Array(30);function Ps(e,t,r,o,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=o,this.max_length=i,this.has_stree=e&&e.length}let Ls,Cs,Bs;function zs(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}gs(Ms);const Rs=e=>e<256?xs[e]:xs[256+(e>>>7)],As=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Is=(e,t,r)=>{e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<{Is(e,r[2*t],r[2*t+1])},Ds=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},Es=(e,t,r)=>{const o=new Array(16);let i,a,n=0;for(i=1;i<=15;i++)o[i]=n=n+r[i-1]<<1;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=Ds(o[t]++,t))}},Fs=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},$s=e=>{e.bi_valid>8?As(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Us=(e,t,r,o)=>{const i=2*t,a=2*r;return e[i]{const o=e.heap[r];let i=r<<1;for(;i<=e.heap_len&&(i{let o,i,a,n,s=0;if(0!==e.last_lit)do{o=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],i=e.pending_buf[e.l_buf+s],s++,0===o?Ts(e,i,t):(a=js[i],Ts(e,a+256+1,t),n=vs[a],0!==n&&(i-=Ss[a],Is(e,i,n)),o--,a=Rs(o),Ts(e,a,r),n=ys[a],0!==n&&(o-=Ms[a],Is(e,o,n)))}while(s{const r=t.dyn_tree,o=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let n,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)qs(e,r,n);c=a;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],qs(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=s,r[2*c]=r[2*n]+r[2*s],e.depth[c]=(e.depth[n]>=e.depth[s]?e.depth[n]:e.depth[s])+1,r[2*n+1]=r[2*s+1]=c,e.heap[1]=c++,qs(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const r=t.dyn_tree,o=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,d,m,_,p,u,f=0;for(_=0;_<=15;_++)e.bl_count[_]=0;for(r[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)d=e.heap[l],_=r[2*r[2*d+1]+1]+1,_>c&&(_=c,f++),r[2*d+1]=_,d>o||(e.bl_count[_]++,p=0,d>=s&&(p=n[d-s]),u=r[2*d],e.opt_len+=u*(_+p),a&&(e.static_len+=u*(i[2*d+1]+p)));if(0!==f){do{for(_=c-1;0===e.bl_count[_];)_--;e.bl_count[_]--,e.bl_count[_+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(_=c;0!==_;_--)for(d=e.bl_count[_];0!==d;)m=e.heap[--l],m>o||(r[2*m+1]!==_&&(e.opt_len+=(_-r[2*m+1])*r[2*m],r[2*m+1]=_),d--)}})(e,t),Es(r,l,e.bl_count)},Ws=(e,t,r)=>{let o,i,a=-1,n=t[1],s=0,c=7,l=4;for(0===n&&(c=138,l=3),t[2*(r+1)+1]=65535,o=0;o<=r;o++)i=n,n=t[2*(o+1)+1],++s{let o,i,a=-1,n=t[1],s=0,c=7,l=4;for(0===n&&(c=138,l=3),o=0;o<=r;o++)if(i=n,n=t[2*(o+1)+1],!(++s{Is(e,0+(o?1:0),3),((e,t,r,o)=>{$s(e),o&&(As(e,r),As(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var Ks={_tr_init:e=>{Ys||((()=>{let e,t,r,o,i;const a=new Array(16);for(r=0,o=0;o<28;o++)for(Ss[o]=r,e=0;e<1<>=7;o<30;o++)for(Ms[o]=i<<7,e=0;e<1<{let i,a,n=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&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)),Hs(e,e.l_desc),Hs(e,e.d_desc),n=(e=>{let t;for(Ws(e,e.dyn_ltree,e.l_desc.max_code),Ws(e,e.dyn_dtree,e.d_desc.max_code),Hs(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*Os[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?Js(e,t,r,o):4===e.strategy||a===i?(Is(e,2+(o?1:0),3),Zs(e,ks,ws)):(Is(e,4+(o?1:0),3),((e,t,r,o)=>{let i;for(Is(e,t-257,5),Is(e,r-1,5),Is(e,o-4,4),i=0;i(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&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(js[r]+256+1)]++,e.dyn_dtree[2*Rs(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Is(e,2,3),Ts(e,256,ks),(e=>{16===e.bi_valid?(As(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 Gs=(e,t,r,o)=>{let i=65535&e|0,a=e>>>16&65535|0,n=0;for(;0!==r;){n=r>2e3?2e3:r,r-=n;do{i=i+t[o++]|0,a=a+i|0}while(--n);i%=65521,a%=65521}return i|a<<16|0};const Vs=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var o=0;o<8;o++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());var Qs=(e,t,r,o)=>{const i=Vs,a=o+r;e^=-1;for(let n=o;n>>8^i[255&(e^t[n])];return-1^e},ec={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"},tc={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:rc,_tr_stored_block:oc,_tr_flush_block:ic,_tr_tally:ac,_tr_align:nc}=Ks,{Z_NO_FLUSH:sc,Z_PARTIAL_FLUSH:cc,Z_FULL_FLUSH:lc,Z_FINISH:dc,Z_BLOCK:mc,Z_OK:_c,Z_STREAM_END:pc,Z_STREAM_ERROR:uc,Z_DATA_ERROR:fc,Z_BUF_ERROR:hc,Z_DEFAULT_COMPRESSION:bc,Z_FILTERED:gc,Z_HUFFMAN_ONLY:vc,Z_RLE:yc,Z_FIXED:Nc,Z_DEFAULT_STRATEGY:Oc,Z_UNKNOWN:kc,Z_DEFLATED:wc}=tc,xc=(e,t)=>(e.msg=ec[t],t),jc=e=>(e<<1)-(e>4?9:0),Sc=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Mc=(e,t,r)=>(t<{const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))},Lc=(e,t)=>{ic(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Pc(e.strm)},Cc=(e,t)=>{e.pending_buf[e.pending++]=t},Bc=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},zc=(e,t,r,o)=>{let i=e.avail_in;return i>o&&(i=o),0===i?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),r),1===e.state.wrap?e.adler=Gs(e.adler,t,i,r):2===e.state.wrap&&(e.adler=Qs(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},Rc=(e,t)=>{let r,o,i=e.max_chain_length,a=e.strstart,n=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,d=e.w_mask,m=e.prev,_=e.strstart+258;let p=l[a+n-1],u=l[a+n];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(r=t,l[r+n]===u&&l[r+n-1]===p&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&a<_);if(o=258-(_-a),a=_-258,o>n){if(e.match_start=t,n=o,o>=s)break;p=l[a+n-1],u=l[a+n]}}}while((t=m[t&d])>c&&0!=--i);return n<=e.lookahead?n:e.lookahead},Ac=e=>{const t=e.w_size;let r,o,i,a,n;do{if(a=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,o=e.hash_size,r=o;do{i=e.head[--r],e.head[r]=i>=t?i-t:0}while(--o);o=t,r=o;do{i=e.prev[--r],e.prev[r]=i>=t?i-t:0}while(--o);a+=t}if(0===e.strm.avail_in)break;if(o=zc(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=o,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Mc(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Mc(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Ic=(e,t)=>{let r,o;for(;;){if(e.lookahead<262){if(Ac(e),e.lookahead<262&&t===sc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=Rc(e,r)),e.match_length>=3)if(o=ac(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=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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=Mc(e,e.ins_h,e.window[e.strstart+1]);else o=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(o&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2},Tc=(e,t)=>{let r,o,i;for(;;){if(e.lookahead<262){if(Ac(e),e.lookahead<262&&t===sc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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!==r&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,o=ac(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=Mc(e,e.ins_h,e.window[e.strstart+3-1]),r=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++,o&&(Lc(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(o=ac(e,0,e.window[e.strstart-1]),o&&Lc(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&&(o=ac(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2};function Dc(e,t,r,o,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=o,this.func=i}const Ec=[new Dc(0,0,0,0,((e,t)=>{let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ac(e),0===e.lookahead&&t===sc)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const o=e.block_start+r;if((0===e.strstart||e.strstart>=o)&&(e.lookahead=e.strstart-o,e.strstart=o,Lc(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Lc(e,!1),e.strm.avail_out),1)})),new Dc(4,4,8,4,Ic),new Dc(4,5,16,8,Ic),new Dc(4,6,32,32,Ic),new Dc(4,4,16,16,Tc),new Dc(8,16,32,32,Tc),new Dc(8,16,128,128,Tc),new Dc(8,32,128,256,Tc),new Dc(32,128,258,1024,Tc),new Dc(32,258,258,4096,Tc)];function Fc(){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=wc,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),Sc(this.dyn_ltree),Sc(this.dyn_dtree),Sc(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),Sc(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Sc(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 $c=e=>{if(!e||!e.state)return xc(e,uc);e.total_in=e.total_out=0,e.data_type=kc;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=sc,rc(t),_c},Uc=e=>{const t=$c(e);var r;return t===_c&&((r=e.state).window_size=2*r.w_size,Sc(r.head),r.max_lazy_match=Ec[r.level].max_lazy,r.good_match=Ec[r.level].good_length,r.nice_match=Ec[r.level].nice_length,r.max_chain_length=Ec[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=2,r.match_available=0,r.ins_h=0),t},qc=(e,t,r,o,i,a)=>{if(!e)return uc;let n=1;if(t===bc&&(t=6),o<0?(n=0,o=-o):o>15&&(n=2,o-=16),i<1||i>9||r!==wc||o<8||o>15||t<0||t>9||a<0||a>Nc)return xc(e,uc);8===o&&(o=9);const s=new Fc;return e.state=s,s.strm=e,s.wrap=n,s.gzhead=null,s.w_bits=o,s.w_size=1<qc(e,t,wc,15,8,Oc),deflateInit2:qc,deflateReset:Uc,deflateResetKeep:$c,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?uc:(e.state.gzhead=t,_c):uc,deflate:(e,t)=>{let r,o;if(!e||!e.state||t>mc||t<0)return e?xc(e,uc):uc;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==dc)return xc(e,0===e.avail_out?hc:uc);i.strm=e;const a=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,Cc(i,31),Cc(i,139),Cc(i,8),i.gzhead?(Cc(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Cc(i,255&i.gzhead.time),Cc(i,i.gzhead.time>>8&255),Cc(i,i.gzhead.time>>16&255),Cc(i,i.gzhead.time>>24&255),Cc(i,9===i.level?2:i.strategy>=vc||i.level<2?4:0),Cc(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(Cc(i,255&i.gzhead.extra.length),Cc(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=Qs(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,0),Cc(i,9===i.level?2:i.strategy>=vc||i.level<2?4:0),Cc(i,3),i.status=113);else{let t=wc+(i.w_bits-8<<4)<<8,r=-1;r=i.strategy>=vc||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=r<<6,0!==i.strstart&&(t|=32),t+=31-t%31,i.status=113,Bc(i,t),0!==i.strstart&&(Bc(i,e.adler>>>16),Bc(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(r=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending!==i.pending_buf_size));)Cc(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindexr&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),0===o&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),Pc(e),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindexr&&(e.adler=Qs(e.adler,i.pending_buf,i.pending-r,r)),0===o&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&Pc(e),i.pending+2<=i.pending_buf_size&&(Cc(i,255&e.adler),Cc(i,e.adler>>8&255),e.adler=0,i.status=113)):i.status=113),0!==i.pending){if(Pc(e),0===e.avail_out)return i.last_flush=-1,_c}else if(0===e.avail_in&&jc(t)<=jc(a)&&t!==dc)return xc(e,hc);if(666===i.status&&0!==e.avail_in)return xc(e,hc);if(0!==e.avail_in||0!==i.lookahead||t!==sc&&666!==i.status){let r=i.strategy===vc?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(Ac(e),0===e.lookahead)){if(t===sc)return 1;break}if(e.match_length=0,r=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===yc?((e,t)=>{let r,o,i,a;const n=e.window;for(;;){if(e.lookahead<=258){if(Ac(e),e.lookahead<=258&&t===sc)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,o=n[i],o===n[++i]&&o===n[++i]&&o===n[++i])){a=e.strstart+258;do{}while(o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&o===n[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=ac(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ac(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Lc(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dc?(Lc(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lc(e,!1),0===e.strm.avail_out)?1:2})(i,t):Ec[i.level].func(i,t);if(3!==r&&4!==r||(i.status=666),1===r||3===r)return 0===e.avail_out&&(i.last_flush=-1),_c;if(2===r&&(t===cc?nc(i):t!==mc&&(oc(i,0,0,!1),t===lc&&(Sc(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),Pc(e),0===e.avail_out))return i.last_flush=-1,_c}return t!==dc?_c:i.wrap<=0?pc:(2===i.wrap?(Cc(i,255&e.adler),Cc(i,e.adler>>8&255),Cc(i,e.adler>>16&255),Cc(i,e.adler>>24&255),Cc(i,255&e.total_in),Cc(i,e.total_in>>8&255),Cc(i,e.total_in>>16&255),Cc(i,e.total_in>>24&255)):(Bc(i,e.adler>>>16),Bc(i,65535&e.adler)),Pc(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?_c:pc)},deflateEnd:e=>{if(!e||!e.state)return uc;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?xc(e,uc):(e.state=null,113===t?xc(e,fc):_c)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return uc;const o=e.state,i=o.wrap;if(2===i||1===i&&42!==o.status||o.lookahead)return uc;if(1===i&&(e.adler=Gs(e.adler,t,r,0)),o.wrap=0,r>=o.w_size){0===i&&(Sc(o.head),o.strstart=0,o.block_start=0,o.insert=0);let e=new Uint8Array(o.w_size);e.set(t.subarray(r-o.w_size,r),0),t=e,r=o.w_size}const a=e.avail_in,n=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,Ac(o);o.lookahead>=3;){let e=o.strstart,t=o.lookahead-2;do{o.ins_h=Mc(o,o.ins_h,o.window[e+3-1]),o.prev[e&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=e,e++}while(--t);o.strstart=e,o.lookahead=2,Ac(o)}return o.strstart+=o.lookahead,o.block_start=o.strstart,o.insert=o.lookahead,o.lookahead=0,o.match_length=o.prev_length=2,o.match_available=0,e.next_in=n,e.input=s,e.avail_in=a,o.wrap=i,_c},deflateInfo:"pako deflate (from Nodeca project)"};const Hc=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Wc=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const t in r)Hc(r,t)&&(e[t]=r[t])}}return e},Xc=e=>{let t=0;for(let o=0,i=e.length;o=252?6:rm>=248?5:rm>=240?4:rm>=224?3:rm>=192?2:1;Jc[254]=Jc[254]=1;var Kc=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,o,i,a,n=e.length,s=0;for(i=0;i>>6,t[a++]=128|63&r):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|63&r):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|63&r);return t},Gc=(e,t)=>{const r=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let o,i;const a=new Array(2*r);for(i=0,o=0;o4)a[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o1?a[i++]=65533:t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Yc)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let o=0;o{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+Jc[e[r]]>t?r:t};var Qc=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 el=Object.prototype.toString,{Z_NO_FLUSH:tl,Z_SYNC_FLUSH:rl,Z_FULL_FLUSH:ol,Z_FINISH:il,Z_OK:al,Z_STREAM_END:nl,Z_DEFAULT_COMPRESSION:sl,Z_DEFAULT_STRATEGY:cl,Z_DEFLATED:ll}=tc;function dl(e){this.options=Wc({level:sl,method:ll,chunkSize:16384,windowBits:15,memLevel:8,strategy:cl},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 Qc,this.strm.avail_out=0;let r=Zc.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==al)throw new Error(ec[r]);if(t.header&&Zc.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Kc(t.dictionary):"[object ArrayBuffer]"===el.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=Zc.deflateSetDictionary(this.strm,e),r!==al)throw new Error(ec[r]);this._dict_set=!0}}dl.prototype.push=function(e,t){const r=this.strm,o=this.options.chunkSize;let i,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?il:tl,"string"==typeof e?r.input=Kc(e):"[object ArrayBuffer]"===el.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),(a===rl||a===ol)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(i=Zc.deflate(r,a),i===nl)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=Zc.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===al;if(0!==r.avail_out){if(a>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},dl.prototype.onData=function(e){this.chunks.push(e)},dl.prototype.onEnd=function(e){e===al&&(this.result=Xc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ml=function(e,t){let r,o,i,a,n,s,c,l,d,m,_,p,u,f,h,b,g,v,y,N,O,k,w,x;const j=e.state;r=e.next_in,w=e.input,o=r+(e.avail_in-5),i=e.next_out,x=e.output,a=i-(t-e.avail_out),n=i+(e.avail_out-257),s=j.dmax,c=j.wsize,l=j.whave,d=j.wnext,m=j.window,_=j.hold,p=j.bits,u=j.lencode,f=j.distcode,h=(1<>>24,_>>>=v,p-=v,v=g>>>16&255,0===v)x[i++]=65535&g;else{if(!(16&v)){if(0==(64&v)){g=u[(65535&g)+(_&(1<>>=v,p-=v),p<15&&(_+=w[r++]<>>24,_>>>=v,p-=v,v=g>>>16&255,!(16&v)){if(0==(64&v)){g=f[(65535&g)+(_&(1<s){e.msg="invalid distance too far back",j.mode=30;break e}if(_>>>=v,p-=v,v=i-a,N>v){if(v=N-v,v>l&&j.sane){e.msg="invalid distance too far back",j.mode=30;break e}if(O=0,k=m,0===d){if(O+=c-v,v2;)x[i++]=k[O++],x[i++]=k[O++],x[i++]=k[O++],y-=3;y&&(x[i++]=k[O++],y>1&&(x[i++]=k[O++]))}else{O=i-N;do{x[i++]=x[O++],x[i++]=x[O++],x[i++]=x[O++],y-=3}while(y>2);y&&(x[i++]=x[O++],y>1&&(x[i++]=x[O++]))}break}}break}}while(r>3,r-=y,p-=y<<3,_&=(1<{const c=s.bits;let l,d,m,_,p,u,f=0,h=0,b=0,g=0,v=0,y=0,N=0,O=0,k=0,w=0,x=null,j=0;const S=new Uint16Array(16),M=new Uint16Array(16);let P,L,C,B=null,z=0;for(f=0;f<=15;f++)S[f]=0;for(h=0;h=1&&0===S[g];g--);if(v>g&&(v=g),0===g)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(b=1;b0&&(0===e||1!==g))return-1;for(M[1]=0,f=1;f<15;f++)M[f+1]=M[f]+S[f];for(h=0;h852||2===e&&k>592)return 1;for(;;){P=f-N,n[h]u?(L=B[z+n[h]],C=x[j+n[h]]):(L=96,C=0),l=1<>N)+d]=P<<24|L<<16|C|0}while(0!==d);for(l=1<>=1;if(0!==l?(w&=l-1,w+=l):w=0,h++,0==--S[f]){if(f===g)break;f=t[r+n[h]]}if(f>v&&(w&_)!==m){for(0===N&&(N=v),p+=b,y=f-N,O=1<852||2===e&&k>592)return 1;m=w&_,i[m]=v<<24|y<<16|p-a|0}}return 0!==w&&(i[p+w]=f-N<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:bl,Z_BLOCK:gl,Z_TREES:vl,Z_OK:yl,Z_STREAM_END:Nl,Z_NEED_DICT:Ol,Z_STREAM_ERROR:kl,Z_DATA_ERROR:wl,Z_MEM_ERROR:xl,Z_BUF_ERROR:jl,Z_DEFLATED:Sl}=tc,Ml=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Pl(){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 Ll=e=>{if(!e||!e.state)return kl;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,yl},Cl=e=>{if(!e||!e.state)return kl;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ll(e)},Bl=(e,t)=>{let r;if(!e||!e.state)return kl;const o=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?kl:(null!==o.window&&o.wbits!==t&&(o.window=null),o.wrap=r,o.wbits=t,Cl(e))},zl=(e,t)=>{if(!e)return kl;const r=new Pl;e.state=r,r.window=null;const o=Bl(e,t);return o!==yl&&(e.state=null),o};let Rl,Al,Il=!0;const Tl=e=>{if(Il){Rl=new Int32Array(512),Al=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(hl(1,e.lens,0,288,Rl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;hl(2,e.lens,0,32,Al,0,e.work,{bits:5}),Il=!1}e.lencode=Rl,e.lenbits=9,e.distcode=Al,e.distbits=5},Dl=(e,t,r,o)=>{let i;const a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>o&&(i=o),a.window.set(t.subarray(r-o,r-o+i),a.wnext),(o-=i)?(a.window.set(t.subarray(r-o,r),0),a.wnext=o,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whavezl(e,15),inflateInit2:zl,inflate:(e,t)=>{let r,o,i,a,n,s,c,l,d,m,_,p,u,f,h,b,g,v,y,N,O,k,w=0;const x=new Uint8Array(4);let j,S;const M=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 kl;r=e.state,12===r.mode&&(r.mode=13),n=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,d=r.bits,m=s,_=c,k=yl;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>>8&255,r.check=Qs(r.check,x,2,0),l=0,d=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=30;break}if((15&l)!==Sl){e.msg="unknown compression method",r.mode=30;break}if(l>>>=4,d-=4,O=8+(15&l),0===r.wbits)r.wbits=O;else if(O>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0,r.mode=3;case 3:for(;d<32;){if(0===s)break e;s--,l+=o[a++]<>>8&255,x[2]=l>>>16&255,x[3]=l>>>24&255,r.check=Qs(r.check,x,4,0)),l=0,d=0,r.mode=4;case 4:for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>8),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0,r.mode=5;case 5:if(1024&r.flags){for(;d<16;){if(0===s)break e;s--,l+=o[a++]<>>8&255,r.check=Qs(r.check,x,2,0)),l=0,d=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p=r.length,p>s&&(p=s),p&&(r.head&&(O=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(o.subarray(a,a+p),O)),512&r.flags&&(r.check=Qs(r.check,o,p,a)),s-=p,a+=p,r.length-=p),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break e;p=0;do{O=o[a+p++],r.head&&O&&r.length<65536&&(r.head.name+=String.fromCharCode(O))}while(O&&p>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;d<32;){if(0===s)break e;s--,l+=o[a++]<>>=7&d,d-=7&d,r.mode=27;break}for(;d<3;){if(0===s)break e;s--,l+=o[a++]<>>=1,d-=1,3&l){case 0:r.mode=14;break;case 1:if(Tl(r),r.mode=20,t===vl){l>>>=2,d-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}l>>>=2,d-=2;break;case 14:for(l>>>=7&d,d-=7&d;d<32;){if(0===s)break e;s--,l+=o[a++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,d=0,r.mode=15,t===vl)break e;case 15:r.mode=16;case 16:if(p=r.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;i.set(o.subarray(a,a+p),n),s-=p,a+=p,c-=p,n+=p,r.length-=p;break}r.mode=12;break;case 17:for(;d<14;){if(0===s)break e;s--,l+=o[a++]<>>=5,d-=5,r.ndist=1+(31&l),l>>>=5,d-=5,r.ncode=4+(15&l),l>>>=4,d-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,d-=3}for(;r.have<19;)r.lens[M[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,j={bits:r.lenbits},k=hl(0,r.lens,0,19,r.lencode,0,r.work,j),r.lenbits=j.bits,k){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=h,d-=h,r.lens[r.have++]=g;else{if(16===g){for(S=h+2;d>>=h,d-=h,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}O=r.lens[r.have-1],p=3+(3&l),l>>>=2,d-=2}else if(17===g){for(S=h+3;d>>=h,d-=h,O=0,p=3+(7&l),l>>>=3,d-=3}else{for(S=h+7;d>>=h,d-=h,O=0,p=11+(127&l),l>>>=7,d-=7}if(r.have+p>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;p--;)r.lens[r.have++]=O}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,j={bits:r.lenbits},k=hl(1,r.lens,0,r.nlen,r.lencode,0,r.work,j),r.lenbits=j.bits,k){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,j={bits:r.distbits},k=hl(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,j),r.distbits=j.bits,k){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,t===vl)break e;case 20:r.mode=21;case 21:if(s>=6&&c>=258){e.next_out=n,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=d,ml(e,_),n=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,d=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;w=r.lencode[l&(1<>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>v)],h=w>>>24,b=w>>>16&255,g=65535&w,!(v+h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,r.length=g,0===b){r.mode=26;break}if(32&b){r.back=-1,r.mode=12;break}if(64&b){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&b,r.mode=22;case 22:if(r.extra){for(S=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;w=r.distcode[l&(1<>>24,b=w>>>16&255,g=65535&w,!(h<=d);){if(0===s)break e;s--,l+=o[a++]<>v)],h=w>>>24,b=w>>>16&255,g=65535&w,!(v+h<=d);){if(0===s)break e;s--,l+=o[a++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,64&b){e.msg="invalid distance code",r.mode=30;break}r.offset=g,r.extra=15&b,r.mode=24;case 24:if(r.extra){for(S=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(p=_-c,r.offset>p){if(p=r.offset-p,p>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p>r.wnext?(p-=r.wnext,u=r.wsize-p):u=r.wnext-p,p>r.length&&(p=r.length),f=r.window}else f=i,u=n-r.offset,p=r.length;p>c&&(p=c),c-=p,r.length-=p;do{i[n++]=f[u++]}while(--p);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;i[n++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;d<32;){if(0===s)break e;s--,l|=o[a++]<{if(!e||!e.state)return kl;let t=e.state;return t.window&&(t.window=null),e.state=null,yl},inflateGetHeader:(e,t)=>{if(!e||!e.state)return kl;const r=e.state;return 0==(2&r.wrap)?kl:(r.head=t,t.done=!1,yl)},inflateSetDictionary:(e,t)=>{const r=t.length;let o,i,a;return e&&e.state?(o=e.state,0!==o.wrap&&11!==o.mode?kl:11===o.mode&&(i=1,i=Gs(i,t,r,0),i!==o.check)?wl:(a=Dl(e,t,r,r),a?(o.mode=31,xl):(o.havedict=1,yl))):kl},inflateInfo:"pako inflate (from Nodeca project)"};var Fl=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 $l=Object.prototype.toString,{Z_NO_FLUSH:Ul,Z_FINISH:ql,Z_OK:Zl,Z_STREAM_END:Hl,Z_NEED_DICT:Wl,Z_STREAM_ERROR:Xl,Z_DATA_ERROR:Yl,Z_MEM_ERROR:Jl}=tc;function Kl(e){this.options=Wc({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 Qc,this.strm.avail_out=0;let r=El.inflateInit2(this.strm,t.windowBits);if(r!==Zl)throw new Error(ec[r]);if(this.header=new Fl,El.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Kc(t.dictionary):"[object ArrayBuffer]"===$l.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=El.inflateSetDictionary(this.strm,t.dictionary),r!==Zl)))throw new Error(ec[r])}var Gl,Vl;Kl.prototype.push=function(e,t){const r=this.strm,o=this.options.chunkSize,i=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ql:Ul,"[object ArrayBuffer]"===$l.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),a=El.inflate(r,n),a===Wl&&i&&(a=El.inflateSetDictionary(r,i),a===Zl?a=El.inflate(r,n):a===Yl&&(a=Wl));r.avail_in>0&&a===Hl&&r.state.wrap>0&&0!==e[r.next_in];)El.inflateReset(r),a=El.inflate(r,n);switch(a){case Xl:case Yl:case Wl:case Jl:return this.onEnd(a),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||a===Hl))if("string"===this.options.to){let e=Vc(r.output,r.next_out),t=r.next_out-e,i=Gc(r.output,e);r.next_out=t,r.avail_out=o-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(i)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(a!==Zl||0!==s){if(a===Hl)return a=El.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},Kl.prototype.onData=function(e){this.chunks.push(e)},Kl.prototype.onEnd=function(e){e===Zl&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Xc(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},(Vl=Gl||(Gl={})).UP="up",Vl.DOWN="down",Vl.NORTH="north",Vl.EAST="east",Vl.SOUTH="south",Vl.WEST="west";const Ql={[Gl.UP]:[0,1,0],[Gl.DOWN]:[0,-1,0],[Gl.NORTH]:[0,0,-1],[Gl.EAST]:[1,0,0],[Gl.SOUTH]:[0,0,1],[Gl.WEST]:[-1,0,0]};var ed,td,rd,od,id,ad,nd,sd,cd,ld,dd,md,_d;function pd(e,t,r){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==r)throw new Error(`Expected ${t} to be of type ${r}, 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 Ql[e]}}(Gl||(Gl={})),function(e){e.create=function(e,t,r){return[e,t,r]},e.offset=function(e,t,r,o){return[e[0]+t,e[1]+r,e[2]+o]},e.towards=function(t,r){return e.offset(t,...Gl.normal(r))}}(ed||(ed={}));class ud{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=pd(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>pd(e.value,"Properties","compound")),{}),o=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:pd(r,t,"string")})),{});return new ud(t,o)}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=null!==(r=rd.readString(o.Name))&&void 0!==r?r:"minecraft:stone",a=rd.readMap(o.Properties,(e=>{var t;return null!==(t=rd.readString(e))&&void 0!==t?t:""}));return new ud(i,a)}}ud.AIR=new ud("minecraft:air");class fd{constructor(e){this.minY=e,this.storage=Array(fd.SIZE),this.palette=[ud.AIR]}get minBlockY(){return this.minY<<4}index(e,t,r){return(e<<8)+(t<<4)+r}getBlockState(e,t,r){var o;const i=this.storage[this.index(e,t,r)];return null!==(o=this.palette[i])&&void 0!==o?o:ud.AIR}setBlockState(e,t,r,o){let i=this.palette.findIndex((e=>e.equals(o)));-1===i&&(i=this.palette.length,this.palette.push(o)),this.storage[this.index(e,t,r)]=i}}fd.WIDTH=16,fd.SIZE=fd.WIDTH*fd.WIDTH*fd.WIDTH;class hd{constructor(e,t,r){this.minY=e,this.height=t,this.pos=r,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[r,o,i]=e,a=this.sections[this.getSectionIndex(o)];return null!==(t=null==a?void 0:a.getBlockState(15&r,15&o,15&i))&&void 0!==t?t:ud.AIR}setBlockState(e,t){const[r,o,i]=e,a=this.getSectionIndex(o);let n=this.sections[a];if(null===n){if(t.equals(ud.AIR))return;n=this.getOrCreateSection(a)}n.setBlockState(15&r,15&o,15&i,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new fd(this.minSection+e)),this.sections[e]}}function bd(e){return e*e}function gd(e,t,r){return t+e*(r-t)}function vd(e,t,r,o,i,a){return gd(t,gd(e,r,o),gd(e,i,a))}function yd(e,t,r){return r<0?e:r>1?t:gd(r,e,t)}function Nd(e){return e*e*e*(e*(6*e-15)+10)}!function(e){e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return e[0]<<19},e.maxBlockZ=function(e){return e[1]<<19}}(td||(td={})),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,r){var o;const i=null!==(o=t(e))&&void 0!==o?o:{};return Object.fromEntries(Object.entries(i).map((([e,t])=>[e,r(t)])))},e.compose=function(e,t,r){const o=t(e);return o?r(o):void 0}}(rd||(rd={}));class Od{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 r=e.nextInt(256-t),o=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=o}}sample2D(e,t){let r,o,i;const a=(e+t)*Od.F2,n=Math.floor(e+a),s=e-(n-(r=(n+(o=Math.floor(t+a)))*Od.G2));let c,l;s>(i=t-(o-r))?(c=1,l=0):(c=0,l=1);const d=s-c+Od.G2,m=i-l+Od.G2,_=s-1+2*Od.G2,p=i-1+2*Od.G2,u=255&n,f=255&o,h=this.P(u+this.P(f))%12,b=this.P(u+c+this.P(f+l))%12,g=this.P(u+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(h,s,i,0,.5)+this.getCornerNoise3D(b,d,m,0,.5)+this.getCornerNoise3D(g,_,p,0,.5))}sample(e,t,r){const o=.3333333333333333*(e+t+r),i=Math.floor(e+o),a=Math.floor(t+o),n=Math.floor(r+o),s=.16666666666666666*(i+a+n),c=e-(i-s),l=t-(a-s),d=r-(n-s);let m,_,p,u,f,h;c>=l?l>=d?(m=1,_=0,p=0,u=1,f=1,h=0):c>=d?(m=1,_=0,p=0,u=1,f=0,h=1):(m=0,_=0,p=1,u=1,f=0,h=1):l127?t-256:t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),o=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=o}}sample(e,t,r,o=0,i=0){const a=e+this.xo,n=t+this.yo,s=r+this.zo,c=Math.floor(a),l=Math.floor(n),d=Math.floor(s),m=a-c,_=n-l,p=s-d;let u=0;if(0!==o){const e=i>=0&&i<_?i:_;u=Math.floor(e/o+1e-7)*o}return this.sampleAndLerp(c,l,d,m,_-u,p,_)}sampleAndLerp(e,t,r,o,i,a,n){const s=this.P(e),c=this.P(e+1),l=this.P(s+t),d=this.P(s+t+1),m=this.P(c+t),_=this.P(c+t+1),p=Od.gradDot(this.P(l+r),o,i,a),u=Od.gradDot(this.P(m+r),o-1,i,a),f=Od.gradDot(this.P(d+r),o,i-1,a),h=Od.gradDot(this.P(_+r),o-1,i-1,a),b=Od.gradDot(this.P(l+r+1),o,i,a-1),g=Od.gradDot(this.P(m+r+1),o-1,i,a-1),v=Od.gradDot(this.P(d+r+1),o,i-1,a-1),y=Od.gradDot(this.P(_+r+1),o-1,i-1,a-1);return function(e,t,r,o,i,a,n,s,c,l,d){return gd(r,vd(e,t,o,i,a,n),vd(e,t,s,c,l,d))}(Nd(o),Nd(n),Nd(a),p,u,f,h,b,g,v,y)}P(e){return 255&this.p[255&e]}}class wd{constructor(e,t,r){if(1-t=0;o-=1)o0&&(s=this.maxLimitNoise.getOctaveNoise(_))&&(m+=s.sample(p,u,f,n,t*n)/l),l/=2}return yd(d/512,m/512,c)}}class jd{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new wd(e,t,r),this.second=new wd(e,t,r);let o=1/0,i=-1/0;for(let n=0;n{var t;return null!==(t=rd.readNumber(e))&&void 0!==t?t:0})))&&void 0!==o?o:[]}};class Sd{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Sd(this.nextLong())}setSeed(e){this.seed=e^Sd.MULTIPLIER&Sd.MODULUS_MASK}advance(){this.seed=this.seed*Sd.MULTIPLIER+Sd.INCREMENT&Sd.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Sd.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,r;for(;(t=this.next(31))-(r=t%e)+(e-1)<0;);return r}nextLong(){return(BigInt(this.next(32))<0;){const t=Math.floor(o/2),i=e+t;r(i)?o=t:(e=i+1,o-=t+1)}return e}(0,this.locations.length,(e=>tt:t.apply.bind(t)),this.derivatives.push(r),this}}(id||(id={})).rotate=function(e,t,r){let{up:o,down:i,north:a,east:n,south:s,west:c}=e;switch(r){case 90:[a,n,s,c]=[n,s,c,a];break;case 180:[a,n,s,c]=[s,c,a,n];break;case 270:[a,n,s,c]=[c,a,n,s]}switch(t){case 90:[o,a,i,s]=[a,i,s,o];break;case 180:[o,a,i,s]=[i,s,o,a];break;case 270:[o,a,i,s]=[s,o,a,i]}return{up:o,down:i,north:a,east:n,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new r(e,null!=t?t:e):e}e.target=function(e,t,r,o,a,n){return new i(e,t,r,o,a,n)},e.parameters=function(e,r,i,a,n,s,c){return new o(t(e),t(r),t(i),t(a),t(n),t(s),c)},e.param=t;class r{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,r=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(r,0)}union(e){return new r(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new r(e,e);const[o,i]=null!==(t=rd.readArray(e,(e=>rd.readNumber(e))))&&void 0!==t?t:[];return new r(null!=o?o:0,null!=i?i:0)}}e.Param=r;class o{constructor(e,t,r,o,i,a,n){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=o,this.depth=i,this.weirdness=a,this.offset=n}fittness(e){return bd(this.temperature.distance(e.temperature))+bd(this.humidity.distance(e.humidity))+bd(this.continentalness.distance(e.continentalness))+bd(this.erosion.distance(e.erosion))+bd(this.depth.distance(e.depth))+bd(this.weirdness.distance(e.weirdness))+bd(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new r(this.offset,this.offset)]}static fromJson(e){var t,i;const a=null!==(t=rd.readObject(e))&&void 0!==t?t:{};return new o(r.fromJson(a.temperature),r.fromJson(a.humidity),r.fromJson(a.continentalness),r.fromJson(a.erosion),r.fromJson(a.depth),r.fromJson(a.weirdness),null!==(i=rd.readInt(a.offset))&&void 0!==i?i:0)}}e.ParamPoint=o;class i{constructor(e,t,r,o,i,a){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=o,this.depth=i,this.weirdness=a}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=i,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)))}};class a{constructor(e){this.root=a.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=a.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let r=0;r<7;r+=1){const o=e.space[r];t+=Math.abs((o.min+o.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,r=-1,o=[];for(let i=0;i<7;++i){a.sort(e,i,!1),o=a.bucketize(e);let n=0;for(const e of o)n+=a.area(e.space);t>n&&(t=n,r=i)}return e=a.sort(e,r,!1),o=a.bucketize(e),o=a.sort(o,r,!0),new s(o.map((e=>a.build(e.children))))}static sort(e,t,r){return e.map((e=>{const o=e.space[t],i=(o.min+o.max)/2;return{key:r?Math.abs(i):i,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let r=[];const o=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const i of e)r.push(i),r.lengthnew r(1/0,-1/0)));for(const r of e)t=[...Array(7)].map(((e,o)=>t[o].union(r.space[o])));return t}search(e,t){let r=1/0,o=null;for(const i of this.children){const a=t(i,e);if(r<=a)continue;const n=i.search(e,t),s=i==n?a:t(n,e);r<=s||(r=s,o=n)}return o}}e.RSubTree=s;class c extends n{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(ad||(ad={}));class Ld{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=null!==(r=rd.readString(o.biome))&&void 0!==r?r:"minecraft:the_void";return new Ld(i)}}class Cd{constructor(e){this.parameters=e}getBiome(e,t,r,o){const i=o(e,t,r);return this.parameters.find(i)}static fromJson(e){var t,r;const o=null!==(t=rd.readObject(e))&&void 0!==t?t:{},i=(null!==(r=rd.readArray(o.biomes,(e=>{var t,r,o;return r=null!==(t=rd.readObject(e))&&void 0!==t?t:{},{biome:null!==(o=rd.readString(r.biome))&&void 0!==o?o:"minecraft:the_void",parameters:ad.ParamPoint.fromJson(r.parameters)}})))&&void 0!==r?r:[]).map((e=>[e.parameters,()=>e.biome]));return new Cd(new ad.Parameters(i))}}!function(e){function t(e){return l.apply(e)+.015}function r(e){return d.apply(e)}function o(e){return m.apply(e)}function i(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}e.offset=t,e.factor=r,e.peaks=o,e.peaksAndValleys=i,e.point=function(e,t,r){return{continents:e,erosion:t,weirdness:r,ridges:i(r)}},e.nearWater=function(e,t){return!(e<-.2)&&(e<-.05||Math.abs(t)<.15)},e.shape=function(e,i){return{offset:t(e),factor:r(e),peaks:o(e),nearWater:i}};const a=p("beachSpline",-.15,-.05,0,0,.1,0,-.03,!1,!1),n=p("lowSpline",-.1,-.1,.03,.1,.1,.01,-.03,!1,!1),s=p("midSpline",-.1,-.1,.03,.1,.7,.01,-.03,!0,!0),c=p("highSpline",-.05,.3,.03,.1,1,.01,.01,!0,!0),l=new Pd("offsetSampler",(e=>e.continents)).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,a).addPoint(-.15,a).addPoint(-.1,n).addPoint(.25,s).addPoint(1,c),d=new Pd("Factor-Continents",(e=>e.continents)).addPoint(-.19,505).addPoint(-.15,_("erosionCoast",800,!0,"ridgeCoast-OldMountains")).addPoint(-.1,_("erosionInland",700,!0,"ridgeInland-OldMountains")).addPoint(.03,_("erosionMidInland",650,!0,"ridgeMidInland-OldMountains")).addPoint(.06,_("erosionFarInland",600,!1,"ridgeFarInland-OldMountains")),m=new Pd("Peaks",(e=>e.continents)).addPoint(.1,0).addPoint(.2,new Pd("Peaks-erosion",(e=>e.erosion)).addPoint(-.8,new Pd("Peaks-erosion-ridges",(e=>e.ridges)).addPoint(-1,0).addPoint(.2,0).addPoint(1,new Pd("Peaks-erosion-ridges-weirdness",(e=>e.weirdness)).addPoint(-.01,80).addPoint(.01,20))).addPoint(-.4,0));function _(e,t,r,o){const i=new Pd(e,(e=>e.erosion)).addPoint(-.6,t).addPoint(-.5,342).addPoint(-.35,t).addPoint(-.25,t).addPoint(-.1,342).addPoint(.03,t);if(r){const e=new Pd("weirdnessShattered",(e=>e.weirdness)).addPoint(0,t).addPoint(.1,80),r=new Pd("ridgesShattered",(e=>e.ridges)).addPoint(-.9,t).addPoint(-.69,e);i.addPoint(.35,t).addPoint(.45,r).addPoint(.55,r).addPoint(.62,t)}else{const e=new Pd(o,(e=>e.ridges)).addPoint(-.7,t).addPoint(-.15,175),r=new Pd(o,(e=>e.ridges)).addPoint(.45,t).addPoint(.7,200);i.addPoint(.05,r).addPoint(.4,r).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return i}function p(e,t,r,o,i,a,n,s,c,l){const d=u(gd(a,.6,1.5),l),m=u(gd(a,.6,1),l),_=u(a,l),p=b(e+"-widePlateau",t-.15,.5*a,gd(.5,.5,.5)*a,.5*a,.6*a,.5),f=b(e+"-narrowPlateau",t,n*a,o*a,.5*a,.6*a,.5),h=b(e+"-plains",t,n,n,o,i,.5),g=b(e+"-plainsFarInland",t,n,n,o,i,.5),v=new Pd(e,(e=>e.ridges)).addPoint(-1,t).addPoint(-.4,h).addPoint(0,i+.07),y=b(e+"-swamps",-.02,s,s,o,i,0),N=new Pd(e,(e=>e.erosion)).addPoint(-.85,d).addPoint(-.7,m).addPoint(-.4,_).addPoint(-.35,p).addPoint(-.1,f).addPoint(.2,h);return c&&N.addPoint(.4,g).addPoint(.45,v).addPoint(.55,v).addPoint(.58,g),N.addPoint(.7,y),N}function u(e,t){const r=new Pd(`M-spline for continentalness: ${e} ${t}`,(e=>e.ridges)),o=f(-1,e,-.7),i=f(1,e,-.7),a=.5*(1-(n=e))/(.46082947*(1-.5*(1-n)))-1.17;var n;if(-.65e.ridges)).addPoint(-1,t,s).addPoint(-.4,r,Math.min(s,c)).addPoint(0,o,c).addPoint(.4,i,2*(i-o)).addPoint(1,a,.7*(a-i))}}(nd||(nd={}));class Bd{constructor(e,t,r,o,i,a){this.cellCountY=t,this.cellCountZ=r,this.cellMinY=i,this.filler=a,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.minCellX=o[0]*e,this.minCellZ=o[1]*r,this.slice0=Bd.allocateSlice(t,r),this.slice1=Bd.allocateSlice(t,r)}static allocateSlice(e,t){const r=Array(t+1);for(let o=0;o>2,n=r*this.cellWidth>>2,{offset:s,factor:c,peaks:l}=this.getTerrainShape(a,n),d=684.412*this.settings.sampling.xzScale,m=684.412*this.settings.sampling.yScale,_=d/this.settings.sampling.xzFactor,p=m/this.settings.sampling.yFactor;for(let u=0;u<=i;u+=1){const i=u+o,a=this.blendedNoise.sample(t,i,r,d,m,_,p),n=this.samplePeakNoise(l,t*this.cellHeight,r*this.cellHeight)/128,f=this.computeInitialDensity(i*this.cellHeight,s,c,0,n)+a;e[u]=this.applySlide(f,i)}}samplePeakNoise(e,t,r){if(0===e)return 0;const o=3e3/this.cellWidth,i=this.mountainPeakNoise.sample(t*o,0,r*o);return i>0?e*i:e/2*i}computeInitialDensity(e,t,r,o,i){const a=(zd.computeDimensionDensity(this.settings.densityFactor,this.settings.densityOffset,e,o)+t+i)*r;return a*(a>0?4:1)}applySlide(e,t){const r=t-Math.floor(this.settings.minY/this.cellHeight);if(this.settings.topSlide.size>0){const t=(this.cellCountY-r-this.settings.topSlide.offset)/this.settings.topSlide.size;e=yd(this.settings.topSlide.target,e,t)}if(this.settings.bottomSlide.size>0){const t=(r-this.settings.bottomSlide.offset)/this.settings.bottomSlide.size;e=yd(this.settings.bottomSlide.target,e,t)}return e}static computeDimensionDensity(e,t,r,o=0){return e*(1-r/128+o)+t}}class Rd{constructor(e,t,r,o){this.seed=e,this.biomeSource=t,this.settings=r,this.cellHeight=r.noise.ySize<<2,this.cellWidth=r.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(r.noise.height/this.cellHeight),this.sampler=new zd(this.cellWidth,this.cellHeight,this.cellCountY,t,r.noise,r.octaves,e,o)}fill(e){const t=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),o=Math.floor(t/this.cellHeight),i=Math.floor((r-t)/this.cellHeight),a=td.minBlockX(e.pos),n=td.minBlockZ(e.pos),s=new Bd(this.cellCountXZ,i,this.cellCountXZ,e.pos,o,this.sampler.fillNoiseColumn.bind(this.sampler)),c=Array(s);c.forEach((e=>e.initializeForFirstCellX()));for(let l=0;le.advanceCellX(l)));for(let t=0;t=0;d-=1){c.forEach((e=>e.selectCellYZ(d,t)));for(let i=this.cellHeight-1;i>=0;i-=1){const m=(o+d)*this.cellHeight+i,_=15&m,p=e.getSectionIndex(m);e.getSectionIndex(r.minBlockY)!==p&&(r=e.getOrCreateSection(p));const u=i/this.cellHeight;c.forEach((e=>e.updateForY(u)));for(let e=0;ee.updateForX(d)));for(let e=0;ee.swapSlices()))}}baseState(e,t,r,o){return(o=(o=function(e,t,r){return Math.max(t,Math.min(r,e))}(o/200,-1,1))/2-o*o*o/24)>0?this.settings.defaultBlock:t{var t,r,o;return{distance:null!==(t=rd.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=rd.readInt(e.spread))&&void 0!==r?r:0,count:null!==(o=rd.readInt(e.count))&&void 0!==o?o:0}})),structures:rd.readMap(r.structures,(e=>{var t,r,o,i,a;return r=null!==(t=rd.readObject(e))&&void 0!==t?t:{},{spacing:null!==(o=rd.readInt(r.spacing))&&void 0!==o?o:0,separation:null!==(i=rd.readInt(r.separation))&&void 0!==i?i:0,salt:null!==(a=rd.readInt(r.salt))&&void 0!==a?a:0}}))}},(_d||(_d={})).fromJson=function(e){var t;const r=null!==(t=rd.readObject(e))&&void 0!==t?t:{};return{temperature:od.fromJson(r.temperature),humidity:od.fromJson(r.humidity),continentalness:od.fromJson(r.continentalness),erosion:od.fromJson(r.erosion),weirdness:od.fromJson(r.weirdness),shift:od.fromJson(r.shift)}},(Id.prototype=new O).isPureReactComponent=!0,Id.prototype.shouldComponentUpdate=function(e,t){return Ad(this.props,e)||Ad(this.state,t)};var Dd=e.__b;e.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Dd&&Dd(e)};var Ed=e.__e;e.__e=function(e,t,r){if(e.then)for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return null==t.__e&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t);Ed(e,t,r)};var Fd=e.unmount;function $d(){this.__u=0,this.t=null,this.__b=null}function Ud(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function qd(){this.u=null,this.o=null}e.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),Fd&&Fd(e)},($d.prototype=new O).__c=function(e,t){var r=t.__c,o=this;null==o.t&&(o.t=[]),o.t.push(r);var i=Ud(o.__v),a=!1,n=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=n;var s=function(){if(!--o.__u){if(o.state.__e){var e=o.state.__e;o.__v.__k[0]=function e(t,r,o){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,r,o)})),t.__c&&t.__c.__P===r&&(t.__e&&o.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=o)),t}(e,e.__c.__P,e.__c.__O)}var t;for(o.setState({__e:o.__b=null});t=o.t.pop();)t.forceUpdate()}},c=!0===t.__h;o.__u++||c||o.setState({__e:o.__b=o.__v.__k[0]}),e.then(n,n)},$d.prototype.componentWillUnmount=function(){this.t=[]},$d.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,r,o){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var r in t)e[r]=t[r];return e}({},t)).__c&&(t.__c.__P===o&&(t.__c.__P=r),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,r,o)}))),t}(this.__b,r,o.__O=o.__P)}this.__b=null}var i=t.__e&&v(N,null,e.fallback);return i&&(i.__h=null),[v(N,null,t.__e?null:e.children),i]};var Zd=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]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 return value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\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 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 return 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 },\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\nconst DataModel_1 = require(\"../model/DataModel\");\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, options) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : ((options === null || options === void 0 ? void 0 : options.wrapLists) ? DataModel_1.DataModel.wrapLists(node.default()) : 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 let 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 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.NumberNode = void 0;\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\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 let 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 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 = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\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[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\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\";\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.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 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 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.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 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 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.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 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 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}\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.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 random_density_offset: true,\r\n simplex_surface_noise: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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: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 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_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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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 random_density_offset: true,\r\n simplex_surface_noise: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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 = 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 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 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/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\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 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:block_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:block_survives_filter': {\r\n state: Reference('block_state')\r\n },\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: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 },\r\n 'minecraft:heightmap': {\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:surface_relative_threshold': {\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: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 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 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 only_in_air: core_1.BooleanNode(),\r\n allowed_on: core_1.ListNode(Reference('block_state')),\r\n disallowed_on: core_1.ListNode(Reference('block_state')),\r\n feature: Feature,\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: ['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_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true, min: 0 }),\r\n state: 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: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: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 },\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 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 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 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:matching_blocks': {\r\n offset: Reference('block_pos'),\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n offset: Reference('block_pos'),\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 }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:matching_blocks'\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 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 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 use_legacy_random: 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 }),\r\n octaves: core_1.ObjectNode({\r\n temperature: Reference('noise_parameters'),\r\n humidity: Reference('noise_parameters'),\r\n continentalness: Reference('noise_parameters'),\r\n erosion: Reference('noise_parameters'),\r\n weirdness: Reference('noise_parameters'),\r\n shift: Reference('noise_parameters'),\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('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}\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 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 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 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'\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","\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","import t from\"pako\";import{vec3 as e,mat4 as s,glMatrix as i}from\"gl-matrix\";var n;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(n||(n={}));const r={[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 o;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return r[t]}}(n||(n={})),function(t){t.create=function(t,e,s){return[t,e,s]},t.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},t.towards=function(e,s){return t.offset(e,...n.normal(s))}}(o||(o={}));const a={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},l=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class h{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&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}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),i.push(128|63&s)):s<65536?(i.push(224|s>>12),i.push(128|s>>6&63),i.push(128|63&s)):(i.push(240|s>>18&7),i.push(128|s>>12&63),i.push(128|s>>6&63),i.push(128|63&s));return i}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(a[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),i.setInt16(t+1,65535&n),i.setInt8(t+3,r),i.setInt32(t+4096,e.timestamp);const o=4096*n;i.setInt32(o,e.data.length+1),i.setInt8(o+4,e.compression),s.set(e.data,o+5),n+=r}return s}function P(t,e,s,i){const n=x(t,e,s);switch(n.compression){case 1:n.data=v(i);break;case 2:n.data=v(i,!1,!0);break;case 3:n.data=m(i);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function x(t,e,s){const i=t.find((t=>t.x===e&&t.z===s));if(void 0===i)throw new Error(`Cannot find chunk [${e}, ${s}]`);return i}function y(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 A(t,e,s,i){const n=y(t,e,\"list\");if(n.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${n.type}s`);if(i&&n.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${n.value.length}`);return n.value}function S(t,e){try{return t()}catch(t){return e}}class B{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=y(t.value,\"Name\",\"string\"),s=S((()=>y(t.value,\"Properties\",\"compound\")),{}),i=Object.keys(s).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:y(s,e,\"string\")})),{});return new B(e,i)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.Name))&&void 0!==s?s:\"minecraft:stone\",r=k.readMap(i.Properties,(t=>{var e;return null!==(e=k.readString(t))&&void 0!==e?e:\"\"}));return new B(n,r)}}B.AIR=new B(\"minecraft:air\");class E{constructor(t){this.minY=t,this.storage=Array(E.SIZE),this.palette=[B.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return null!==(i=this.palette[n])&&void 0!==i?i:B.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex((t=>t.equals(i)));-1===n&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}E.WIDTH=16,E.SIZE=E.WIDTH*E.WIDTH*E.WIDTH;class C{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,i,n]=t,r=this.sections[this.getSectionIndex(i)];return null!==(e=null==r?void 0:r.getBlockState(15&s,15&i,15&n))&&void 0!==e?e:B.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(null===o){if(e.equals(B.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new E(this.minSection+t)),this.sections[t]}}var I,k,R;!function(t){t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return t[0]<<19},t.maxBlockZ=function(t){return t[1]<<19}}(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 i;const n=null!==(i=e(t))&&void 0!==i?i:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const i=e(t);return i?s(i):void 0}}(k||(k={}));class _{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,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new B(e,s);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:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},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]B.fromNbt({name:\"\",value:t}))),i=A(t.value,\"blocks\",\"compound\").map((t=>({pos:A(t,\"pos\",\"int\",3),state:y(t,\"state\",\"int\"),nbt:S((()=>y(t,\"nbt\",\"compound\")),void 0)})));return new _(e,s,i)}}function F(t){return t*t}function M(t,e,s){return Math.max(e,Math.min(s,t))}function N(t,e,s){return e+t*(s-e)}function T(t,e,s,i,n,r){return N(e,N(t,s,i),N(t,n,r))}function O(t,e,s,i,n,r,o,a,l,h,u){return N(s,T(t,e,i,n,r,o),T(t,e,a,l,h,u))}function U(t,e,s){return s<0?t:s>1?e:N(s,t,e)}function D(t){return t*t*t*(t*(6*t-15)+10)}function L(t,e,s){let i=e-t;for(;i>0;){const e=Math.floor(i/2),n=t+e;s(n)?i=e:(t=n+1,i-=e+1)}return t}class z{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),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*z.F2,o=Math.floor(t+r),a=t-(o-(s=(o+(i=Math.floor(e+r)))*z.G2));let l,h;a>(n=e-(i-s))?(l=1,h=0):(l=0,h=1);const u=a-l+z.G2,c=n-h+z.G2,d=a-1+2*z.G2,f=n-1+2*z.G2,g=255&o,p=255&i,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,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=s-(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 s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,a=s+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!==i){const t=n>=0&&n=0;i-=1)i0&&(a=this.maxLimitNoise.getOctaveNoise(r))&&(c+=a.sample(f,g,p,d,e*d)/h),h/=2}return U(u/512,c/512,l)}}class X{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new j(t,e,s),this.second=new j(t,e,s);let i=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=k.readNumber(t))&&void 0!==e?e:0})))&&void 0!==i?i:[]}}}(R||(R={}));class H{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new z(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-e)?this.noiseLevels[e]=new z(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,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o>BigInt(W.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))<ee:e.apply.bind(e)),this.derivatives.push(s),this}}const $=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],G=[124/256,189/256,107/256],q=$(6396257),K=$(8431445),Q=$(4764952),tt=$(4159204),et=$(8431445),st=$(2129968),it=t=>[t/8,1-t/32,64*t],nt={large_fern:()=>G,tall_grass:()=>G,grass_block:()=>G,fern:()=>G,grass:()=>G,potted_fern:()=>G,spruce_leaves:()=>q,birch_leaves:()=>K,oak_leaves:()=>Q,jungle_leaves:()=>Q,acacia_leaves:()=>Q,dark_oak_leaves:()=>Q,vine:()=>Q,water:()=>tt,bubble_column:()=>tt,cauldron:()=>tt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),M(e*e*.7-.5,0,1),M(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>G,attached_melon_stem:()=>et,attached_pumpkin_stem:()=>et,melon_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>st};var rt;function ot(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let i=0;for(const e of t)s.set(e,i),i+=e.length;return s}function at(t,s){const i=e.create();for(let n=0;nthis.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,n,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=rt.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,n,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,-i.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-i.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),at(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=ot(...f);return at(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,i]=t.split(\"=\");return e[s]===i}))}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 lt(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]},ut={x:[1,0,0],y:[0,1,0],z:[0,0,1]},ct=1.41421356237,dt={x:[1,ct,ct],y:[ct,1,ct],z:[ct,ct,1]};class ft{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,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,i,s,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),i+=r.texCoord.length/2}return{position:ot(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,n,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,P;const x=r.from[0],y=r.from[1],A=r.from[2],S=r.to[0],B=r.to[1],E=r.to[2],C=[],I=[],k=[],R=[],_=(e,s,i)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,P,x,y]=a.getTextureUV(this.getTexture(e.texture)),A=(x-w)/16,S=(y-P)/16,B=A/16,E=S/16;s[0]=(null!==(l=null===(r=e.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+B,s[1]=(null!==(u=null===(h=e.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*S+E,s[2]=(null!==(d=null===(c=e.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-B,s[3]=(null!==(g=null===(f=e.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*S-E;const _=ht[null!==(p=e.rotation)&&void 0!==p?p:0];I.push(w+s[_[0]],P+s[_[1]],w+s[_[2]],P+s[_[3]],w+s[_[4]],P+s[_[5]],w+s[_[6]],P+s[_[7]]);const F=(null!==(m=e.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=nt[t.slice(10)])||void 0===v?void 0:v.call(nt,n))&&void 0!==b?b:[1,1,1];k.push(...F,...F,...F,...F),C.push(...i),R.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]||_(r.faces.up,[x,16-E,S,16-A],[x,B,E,S,B,E,S,B,A,x,B,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]||_(r.faces.down,[16-E,16-S,16-A,16-x],[x,y,A,S,y,A,S,y,E,x,y,E]),!(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]||_(r.faces.south,[x,16-B,S,16-y],[x,y,E,S,y,E,S,B,E,x,B,E]),!(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]||_(r.faces.north,[16-S,16-B,16-x,16-y],[S,y,A,x,y,A,x,B,A,S,B,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]||_(r.faces.east,[16-E,16-B,16-A,16-y],[S,y,E,S,y,A,S,B,A,S,B,E]),!(null===(P=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===P?void 0:P.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||_(r.faces.west,[A,16-B,E,16-y],[x,y,A,x,y,E,x,B,E,x,B,A]);const F=s.create();if(s.identity(F),r.rotation){const t=e.fromValues(...r.rotation.origin);s.translate(F,F,t),s.rotate(F,F,i.toRadian(r.rotation.angle),ut[r.rotation.axis]),r.rotation.rescale&&s.scale(F,F,dt[r.rotation.axis]),e.negate(t,t),s.translate(F,F,t)}const M=new Float32Array(C);return at(M,F),{position:M,texCoord:I,tintColor:k,index:R}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!==(s=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==s?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)&&void 0!==e?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 ft(t,s,e.textures,e.elements)}}class gt{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),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),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 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 pt(t,e,s,i,n){const r=new lt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,s,i)}function mt(t,e,s,i,r,o){const a=r.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 pt(`minecraft:${t}`,i,e,r,new ft(\"\",\"\",{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 vt={\"minecraft:water\":(t,e,s,i)=>mt(\"water\",t,parseInt(e.level),s,i,0),\"minecraft:lava\":(t,e,s,i)=>mt(\"lava\",t,parseInt(e.level),s,i),\"minecraft:chest\":(t,e,s)=>function(t,e,s,i){return pt(\"minecraft:chest\",i,t,{},new ft(\"\",\"\",{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)},bt=new Set(Object.keys(vt));class wt{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==i?void 0:i.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==i?void 0:i.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==i?void 0:i.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new gt(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 gt(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 gt(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),s=2*Math.abs(t[1])+(t[1]<0?1:0),i=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][i]||(this.chunks[e][s][i]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][i]}updateStructureBuffers(t){var i;const r=(t,i,n)=>{const r=s.create();s.translate(r,r,i),at(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let s=0;s{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,ot(...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,ot(...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!==(i=this.resources.getDefaultBlockProperties(o))&&void 0!==i?i:{};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=>e.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,n.UP),down:this.needsCull(s,n.DOWN),west:this.needsCull(s,n.WEST),east:this.needsCull(s,n.EAST),north:this.needsCull(s,n.NORTH),south:this.needsCull(s,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),r(l,s.pos,c)),bt.has(o)&&(l=vt[o](c.indexOffset,a,this.resources,e),r(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 s,i;const r=null===(s=this.structure.getBlock(o.towards(t.pos,e)))||void 0===s?void 0:s.state;return!!r&&((null===(i=this.resources.getBlockFlags(r.getName()))||void 0===i?void 0:i.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&r.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),i=[],n=[];i.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),i.push(0,0,0,0,0,s),n.push(0,0,1,0,0,1),i.push(0,0,0,0,e,0),i.push(t,0,0,t,e,0),i.push(0,0,s,0,e,s),i.push(t,0,s,t,e,s),i.push(0,e,0,0,e,s),i.push(t,e,0,t,e,s),i.push(0,e,0,t,e,0),i.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)i.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)i.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:i.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 i=0;i{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,s,i){this.gl.viewport(t,e,s,i),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const i=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(i,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(i)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!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 Pt(t,e,s,i){return new(s||(s=Promise))((function(n,r){function o(t){try{l(i.next(t))}catch(t){r(t)}}function a(t){try{l(i.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(o,a)}l((i=i.apply(t,e||[])).next())}))}class xt{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 Pt(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),i=16*s,n=1/s,r=document.createElement(\"canvas\");r.width=i,r.height=i;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Pt(this,void 0,void 0,(function*(){const i=l%s,r=Math.floor(l/s);l+=1,a[e]=[n*i,n*r,n*i+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*i,16*r,16,16)}))))),new xt(o.getImageData(0,0,i,i),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return xt.drawInvalidTexture(e),new xt(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 yt,At,St,Bt,Et,Ct,It,kt;!function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,i,r,o){return new n(t,e,s,i,r,o)},t.parameters=function(t,s,n,r,o,a,l){return new i(e(t),e(s),e(n),e(r),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[i,n]=null!==(e=k.readArray(t,(t=>k.readNumber(t))))&&void 0!==e?e:[];return new s(null!=i?i:0,null!=n?n:0)}}t.Param=s;class i{constructor(t,e,s,i,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return F(this.temperature.distance(t.temperature))+F(this.humidity.distance(t.humidity))+F(this.continentalness.distance(t.continentalness))+F(this.erosion.distance(t.erosion))+F(this.depth.distance(t.depth))+F(this.weirdness.distance(t.weirdness))+F(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,n;const r=null!==(e=k.readObject(t))&&void 0!==e?e:{};return new i(s.fromJson(r.temperature),s.fromJson(r.humidity),s.fromJson(r.continentalness),s.fromJson(r.erosion),s.fromJson(r.depth),s.fromJson(r.weirdness),null!==(n=k.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=i;class n{constructor(t,e,s,i,n,r){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,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 s=0;s<7;s+=1){const i=t.space[s];e+=Math.abs((i.min+i.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,s=-1,i=[];for(let n=0;n<7;++n){r.sort(t,n,!1),i=r.bucketize(t);let o=0;for(const t of i)o+=r.area(t.space);e>o&&(e=o,s=n)}return t=r.sort(t,s,!1),i=r.bucketize(t),i=r.sort(i,s,!0),new a(i.map((t=>r.build(t.children))))}static sort(t,e,s){return t.map((t=>{const i=t.space[e],n=(i.min+i.max)/2;return{key:s?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const i=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)s.push(n),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,i)=>e[i].union(s.space[i])));return e}search(t,e){let s=1/0,i=null;for(const n of this.children){const r=e(n,t);if(s<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);s<=a||(s=a,i=o)}return i}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(yt||(yt={}));class Rt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.biome))&&void 0!==s?s:\"minecraft:the_void\";return new Rt(n)}}class _t{constructor(t){this.parameters=t}getBiome(t,e,s,i){const n=i(t,e,s);return this.parameters.find(n)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=(null!==(s=k.readArray(i.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=k.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:yt.ParamPoint.fromJson(t.parameters)}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})})))&&void 0!==s?s:[]).map((t=>[t.parameters,()=>t.biome]));return new _t(new yt.Parameters(n))}}!function(t){function e(t){return h.apply(t)+.015}function s(t){return u.apply(t)}function i(t){return c.apply(t)}function n(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}t.offset=e,t.factor=s,t.peaks=i,t.peaksAndValleys=n,t.point=function(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:n(s)}},t.nearWater=function(t,e){return!(t<-.2)&&(t<-.05||Math.abs(e)<.15)},t.shape=function(t,n){return{offset:e(t),factor:s(t),peaks:i(t),nearWater:n}};const r=f(\"beachSpline\",-.15,-.05,0,0,.1,0,-.03,!1,!1),o=f(\"lowSpline\",-.1,-.1,.03,.1,.1,.01,-.03,!1,!1),a=f(\"midSpline\",-.1,-.1,.03,.1,.7,.01,-.03,!0,!0),l=f(\"highSpline\",-.05,.3,.03,.1,1,.01,.01,!0,!0),h=new Z(\"offsetSampler\",(t=>t.continents)).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,r).addPoint(-.15,r).addPoint(-.1,o).addPoint(.25,a).addPoint(1,l),u=new Z(\"Factor-Continents\",(t=>t.continents)).addPoint(-.19,505).addPoint(-.15,d(\"erosionCoast\",800,!0,\"ridgeCoast-OldMountains\")).addPoint(-.1,d(\"erosionInland\",700,!0,\"ridgeInland-OldMountains\")).addPoint(.03,d(\"erosionMidInland\",650,!0,\"ridgeMidInland-OldMountains\")).addPoint(.06,d(\"erosionFarInland\",600,!1,\"ridgeFarInland-OldMountains\")),c=new Z(\"Peaks\",(t=>t.continents)).addPoint(.1,0).addPoint(.2,new Z(\"Peaks-erosion\",(t=>t.erosion)).addPoint(-.8,new Z(\"Peaks-erosion-ridges\",(t=>t.ridges)).addPoint(-1,0).addPoint(.2,0).addPoint(1,new Z(\"Peaks-erosion-ridges-weirdness\",(t=>t.weirdness)).addPoint(-.01,80).addPoint(.01,20))).addPoint(-.4,0));function d(t,e,s,i){const n=new Z(t,(t=>t.erosion)).addPoint(-.6,e).addPoint(-.5,342).addPoint(-.35,e).addPoint(-.25,e).addPoint(-.1,342).addPoint(.03,e);if(s){const t=new Z(\"weirdnessShattered\",(t=>t.weirdness)).addPoint(0,e).addPoint(.1,80),s=new Z(\"ridgesShattered\",(t=>t.ridges)).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,s).addPoint(.55,s).addPoint(.62,e)}else{const t=new Z(i,(t=>t.ridges)).addPoint(-.7,e).addPoint(-.15,175),s=new Z(i,(t=>t.ridges)).addPoint(.45,e).addPoint(.7,200);n.addPoint(.05,s).addPoint(.4,s).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}function f(t,e,s,i,n,r,o,a,l,h){const u=g(N(r,.6,1.5),h),c=g(N(r,.6,1),h),d=g(r,h),f=v(t+\"-widePlateau\",e-.15,.5*r,N(.5,.5,.5)*r,.5*r,.6*r,.5),p=v(t+\"-narrowPlateau\",e,o*r,i*r,.5*r,.6*r,.5),m=v(t+\"-plains\",e,o,o,i,n,.5),b=v(t+\"-plainsFarInland\",e,o,o,i,n,.5),w=new Z(t,(t=>t.ridges)).addPoint(-1,e).addPoint(-.4,m).addPoint(0,n+.07),P=v(t+\"-swamps\",-.02,a,a,i,n,0),x=new Z(t,(t=>t.erosion)).addPoint(-.85,u).addPoint(-.7,c).addPoint(-.4,d).addPoint(-.35,f).addPoint(-.1,p).addPoint(.2,m);return l&&x.addPoint(.4,b).addPoint(.45,w).addPoint(.55,w).addPoint(.58,b),x.addPoint(.7,P),x}function g(t,e){const s=new Z(`M-spline for continentalness: ${t} ${e}`,(t=>t.ridges)),i=p(-1,t,-.7),n=p(1,t,-.7),r=function(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}(t);if(-.65t.ridges)).addPoint(-1,e,a).addPoint(-.4,s,Math.min(a,l)).addPoint(0,i,l).addPoint(.4,n,2*(n-i)).addPoint(1,r,.7*(r-n))}}(At||(At={}));class Ft{constructor(t,e,s,i,n,r){this.cellCountY=e,this.cellCountZ=s,this.cellMinY=n,this.filler=r,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.minCellX=i[0]*t,this.minCellZ=i[1]*s,this.slice0=Ft.allocateSlice(e,s),this.slice1=Ft.allocateSlice(e,s)}static allocateSlice(t,e){const s=Array(e+1);for(let i=0;i>2,o=s*this.cellWidth>>2,{offset:a,factor:l,peaks:h}=this.getTerrainShape(r,o),u=684.412*this.settings.sampling.xzScale,c=684.412*this.settings.sampling.yScale,d=u/this.settings.sampling.xzFactor,f=c/this.settings.sampling.yFactor;for(let r=0;r<=n;r+=1){const n=r+i,o=this.blendedNoise.sample(e,n,s,u,c,d,f),g=this.samplePeakNoise(h,e*this.cellHeight,s*this.cellHeight)/128,p=this.computeInitialDensity(n*this.cellHeight,a,l,0,g)+o;t[r]=this.applySlide(p,n)}}samplePeakNoise(t,e,s){if(0===t)return 0;const i=3e3/this.cellWidth,n=this.mountainPeakNoise.sample(e*i,0,s*i);return n>0?t*n:t/2*n}computeInitialDensity(t,e,s,i,n){const r=(Mt.computeDimensionDensity(this.settings.densityFactor,this.settings.densityOffset,t,i)+e+n)*s;return r*(r>0?4:1)}applySlide(t,e){const s=e-Math.floor(this.settings.minY/this.cellHeight);if(this.settings.topSlide.size>0){const e=(this.cellCountY-s-this.settings.topSlide.offset)/this.settings.topSlide.size;t=U(this.settings.topSlide.target,t,e)}if(this.settings.bottomSlide.size>0){const e=(s-this.settings.bottomSlide.offset)/this.settings.bottomSlide.size;t=U(this.settings.bottomSlide.target,t,e)}return t}static computeDimensionDensity(t,e,s,i=0){return t*(1-s/128+i)+e}}class Nt{constructor(t,e,s,i){this.seed=t,this.biomeSource=e,this.settings=s,this.cellHeight=s.noise.ySize<<2,this.cellWidth=s.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(s.noise.height/this.cellHeight),this.sampler=new Mt(this.cellWidth,this.cellHeight,this.cellCountY,e,s.noise,s.octaves,t,i)}fill(t){const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),i=Math.floor(e/this.cellHeight),n=Math.floor((s-e)/this.cellHeight),r=I.minBlockX(t.pos),o=I.minBlockZ(t.pos),a=new Ft(this.cellCountXZ,n,this.cellCountXZ,t.pos,i,this.sampler.fillNoiseColumn.bind(this.sampler)),l=Array(a);l.forEach((t=>t.initializeForFirstCellX()));for(let e=0;et.advanceCellX(e)));for(let s=0;s=0;u-=1){l.forEach((t=>t.selectCellYZ(u,s)));for(let n=this.cellHeight-1;n>=0;n-=1){const c=(i+u)*this.cellHeight+n,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=n/this.cellHeight;l.forEach((t=>t.updateForY(g)));for(let t=0;tt.updateForX(u)));for(let t=0;tt.swapSlices()))}}baseState(t,e,s,i){return(i=(i=M(i/200,-1,1))/2-i*i*i/24)>0?this.settings.defaultBlock:e{var e,s,i;return{distance:null!==(e=k.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(s=k.readInt(t.spread))&&void 0!==s?s:0,count:null!==(i=k.readInt(t.count))&&void 0!==i?i:0}})),structures:k.readMap(s.structures,(t=>{var e;return(t=>{var e,s,i;return{spacing:null!==(e=k.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(s=k.readInt(t.separation))&&void 0!==s?s:0,salt:null!==(i=k.readInt(t.salt))&&void 0!==i?i:0}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})}))}}}(It||(It={})),function(t){t.fromJson=function(t){var e;const s=null!==(e=k.readObject(t))&&void 0!==e?e:{};return{temperature:R.fromJson(s.temperature),humidity:R.fromJson(s.humidity),continentalness:R.fromJson(s.continentalness),erosion:R.fromJson(s.erosion),weirdness:R.fromJson(s.weirdness),shift:R.fromJson(s.shift)}}}(kt||(kt={}));export{Y as BlendedNoise,nt as BlockColors,lt as BlockDefinition,ft as BlockModel,o as BlockPos,B as BlockState,C as Chunk,I as ChunkPos,E as ChunkSection,yt as Climate,n as Direction,Rt as FixedBiome,V as ImprovedNoise,k as Json,_t as MultiNoise,h as NbtReader,u as NbtWriter,Nt as NoiseChunkGenerator,Ct as NoiseGeneratorSettings,Ft as NoiseInterpolator,kt as NoiseOctaves,R as NoiseParameters,Mt as NoiseSampler,Bt as NoiseSamplingSettings,St as NoiseSettings,Et as NoiseSlideSettings,X as NormalNoise,j as PerlinNoise,H as PerlinSimplexNoise,W as Random,z as SimplexNoise,Z as Spline,_ as Structure,wt as StructureRenderer,It as StructureSettings,At as TerrainShaper,xt as TextureAtlas,J as WorldgenRandom,L as binarySearch,M as clamp,U as clampedLerp,A as getListTag,S as getOptional,y as getTag,N as lerp,T as lerp2,O as lerp3,f as read,p as readChunk,d as readCompressed,g as readRegion,c as readUncompressed,D as smoothstep,F as square,l as tagNames,a as tagTypes,b as write,P as writeChunk,v as writeCompressed,w as writeRegion,m as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?: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]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n"],"names":["n","u","i","t","r","f","e","n2","l2","u2","parentNode","removeChild","i2","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","n$1","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","getDerivedStateFromError","setState","componentDidCatch","k","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$12","charAt","param","flags","plus","star","val","map","default","rank","index","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","splice","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","o","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema","options","_b","_c","_d","historyMax","verbose","wrapLists","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res","entries","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode","cases","activeCase","concat","fallback","sorter","priority","matchedCases","ListNode_1","SwitchNode_1","DataModel_12","choices","switchNode","choice","isValid","XOrList","ChoiceNode","change","presetNode","objectNode","presets","keys","MapNode","validation","NumberNode","integer","color","Number","isInteger","number","Node_12","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","includes","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","values","string","Hook","Registries","registry","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Name","Properties","Opt","level","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","count","durability","potion","nbt","enchantments","levels","fluid","position","biome","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","distance","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","to","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Condition","ObjectOrList","condition","ConditionCases","LootContext","Map","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","source","minecraft:copy_nbt","ops","getter","op","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","result","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","interpret","schemas","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","__esModule","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","size","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","settings","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","scale","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","structures","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","axis","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","stronghold","spacing","separation","salt","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","elements","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","noodle_caves_enabled","ore_veins_enabled","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","octaves","erosion","continentalness","minecraft:weighted_list","distribution","minecraft:set_potion","use_legacy_random","ClimateParameter","minecraft:block_filter","minecraft:block_survives_filter","minecraft:environment_scan","direction_of_search","max_steps","target_condition","minecraft:surface_relative_threshold","xz_spread","y_spread","only_in_air","allowed_on","disallowed_on","minecraft:block_column","prioritize_tip","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","minecraft:all_of","predicates","minecraft:any_of","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset","buf","len","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","flush","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next","deflateInfo","_has","common","sources","TypeError","chunks","chunk","STR_APPLY_UIA_OK","fromCharCode","apply","_utf8len","q2","strings","TextEncoder","encode","c22","m_pos","str_len","buf_len","TextDecoder","decode","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","Error","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","fill","low","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","done","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","UP","DOWN","NORTH","EAST","SOUTH","WEST","R","rt","yt","At","St","Bt","Et","Ct","It","kt","ALL","normal","towards","S","e3","B","readObject","readString","readMap","AIR","minY","E","SIZE","palette","findIndex","WIDTH","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","N","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","readNumber","readInt","readBoolean","readArray","t4","fromEntries","compose","xo","nextDouble","yo","zo","nextInt","F2","G2","getCornerNoise3D","S2","B2","E2","C2","I2","R2","gradDot","GRADIENT","sqrt","sampleAndLerp","O","D","noiseLevels","V","consume","lowestFreqInputFactor","pow","lowestFreqValueFactor","sample","minLimitNoise","maxLimitNoise","mainNoise","i3","getOctaveNoise","i4","c3","r3","o3","U","first","second","valueFactor","X","INPUT_FACTOR","fromJson","setSeed","W","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","coordinate","locations","derivatives","rotate","up","down","north","east","south","west","s3","a3","Param","F","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","Rt","find","_t","factor","peaks","peaksAndValleys","point","continents","ridges","nearWater","Z","addPoint","t5","h2","d3","f3","p3","m3","cellCountY","cellCountZ","cellMinY","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","minCellX","minCellZ","slice0","Ft","allocateSlice","slice1","fillSlice","cellWidth","cellHeight","biomeSource","shapeOverride","useLegacyRandom","fork","blendedNoise","Y","temperatureNoise","J","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","mountainPeakNoise","getOffset","Mt","computeDimensionDensity","getTerrainShape","xzScale","xzFactor","yFactor","samplePeakNoise","computeInitialDensity","applySlide","densityFactor","densityOffset","topSlide","bottomSlide","ySize","xzSize","cellCountXZ","sampler","fillNoiseColumn","initializeForFirstCellX","advanceCellX","selectCellYZ","minBlockY","updateForY","n4","updateForX","u4","calculateValue","baseState","swapSlices","defaultBlock","seaLevel","defaultFluid","displayName","isReactComponent","__f","useSimplexSurfaceNoise","randomDensityOffset","islandNoiseOverride","isAmplified","bedrockRoofPosition","bedrockFloorPosition","disableMobGeneration","aquifersEnabled","noiseCavesEnabled","deepslateEnabled","oreVeinsEnabled","noodleCavesEnabled","isPureReactComponent","__u","__R","__O","delete","revealOrder","reverse","for","configurable","writable","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","G","class","multiple","selected","defaultValue","className","$$typeof","K","performance","now"],"mappings":"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,KAAKI,EAAa,YAANJ,GAAoBma,EAAQC,eAAepa,MAAoBma,EAAS/Z,EAAGJ,WAE7F6M,iBAAwB,aAAc,CAAEhM,OAAO,MACzCmP,GAA8BwC,KAC9BvC,GAAyBuC,KACzBrC,GAA2BqC,KAC3BmE,GAAyBnE,KACzBoE,GAAgCpE,KAChC6H,GAA+B7H,KAC/B8H,GAA6B9H,KAC7B+H,GAA4B/H,KAC5BgI,GAA+BhI,KAC/BiI,GAA+BjI,KAC/BkI,GAA8BlI,KAC9BmI,GAA+BnI,KAC/BoI,GAA+BpI,KAC/BqI,GAAmBrI,KACnBsI,GAAyBtI,KACzBuI,GAA+BvI,wBC1B5ClI,OAAOuC,eAAemO,GAAS,aAAc,CAAEna,OAAO,4BAC5B,qBAC1B,SAAyBmY,KACTiC,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,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,eACA,aACA,mBAEQA,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,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCtRDpO,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1B2R,QAAgBA,sBAAyB,QAC/D0I,EAASlL,gCACYyI,EAASO,SAC1BmC,EAAaD,EAAOvC,WAAW5S,UAAK,EAAWiT,GAC/CoC,EAAYF,EAAO1C,UAAUzS,UAAK,EAAW0S,KAC3CwC,SAAS,cAAeC,EAAO5H,IAAI4H,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC1DqC,WAAYL,EAAOM,IAAIN,EAAOnF,QAAQoF,IAAcA,IAAc,CA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0wB,EAAe,YAAN1wB,GAAmBoK,OAAO8P,eAAejW,KAAKysB,EAAK1wB,OAAoBosB,EAAQsE,EAAK1wB,aACzGosB,EAAQsE,GACpBtE,GAEXhiB,OAAOuC,eAAeikB,GAAS,aAAc,CAAEjwB,OAAO,IACtD,4CAA8C,EAC9C,MAAMghB,GAAS7R,GACT+gB,GAAgB9gB,GAChB+gB,GAAY7gB,GAClB,sBAAsBwgB,GAAaha,IAMnC,yBALA,iBACUqC,EAAc,IAAI6I,GAAOoP,6BACjBC,gBAAgBlY,GACvBA,GAsBXmY,iBALA,SAAoBnY,SACVP,EAAU,IAAIoJ,GAAOuP,yBACjBC,YAAY5Y,EAASO,GACxBP,iMChDXnO,OAAOuC,eAAemO,GAAS,aAAc,CAAEna,OAAO,4BAC5B,qBAC1B,SAAyBmY,KACTiC,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,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,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,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,QACA,UACA,QACA,QACA,cAEQA,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,+DCngBDpO,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1B2R,aAAqBA,QAAgB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CVP,EAAU,IAAIoJ,GAAOuP,yBACjBC,YAAY5Y,EAASO,GACxBP,iMChDXnO,OAAOuC,eAAemO,GAAS,aAAc,CAAEna,OAAO,4BAC5B,qBAC1B,SAAyBmY,KACTiC,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,2BCpkBR3Q,OAAO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CA,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,2BC1TR3Q,OAAOuC,eAAe+U,GAAS,aAAc,CAAE/gB,OAAO,mCACrB,EACjC,MAAMghB,GAAS7R,6BACf,SAAgCyI,EAASO,SAC/BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/Cyb,EAAkB5S,GAAOpM,WAAW,CACtC,CACI/X,KAAM,SACNkL,KAAMiZ,GAAOrG,IAAIJ,EAAU,qBAC3B1F,eAAmBrH,EAAIiC,SAAoF,UAAnD,UAAVpO,EAAE,UAAuB,IAAPmM,OAAgB,EAASA,EAAG+N,iBAA8B,IAAP9L,EAAgBA,EAAM,KAE7I,CACI5S,KAAM,OACNkL,KAAMiZ,GAAOjO,SAASwH,EAAU,cAChC1F,UAAa,CAAC,CACNkR,UAAW,8BACXxK,UAAWla,MAGxB,CAAExD,QAAS,iBACNuc,SAAS,cAAe4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACzD2G,QAASH,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC7C4G,KAAMJ,GAAOxG,WAAW,CACpB6C,KAAM/C,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC1DqF,IAAKsD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,iBAAkBb,GAAI,CAAC,MAAO,CAAEtU,KAAM,gBAEzH4kB,MAAO9G,EAAU,kBACjB+G,YAAa/G,EAAU,kBACvBgH,WAAYP,GAAOrG,IAAIL,KACvBkH,MAAOR,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,CAAC,OAAQ,YAAa,WAC3DyJ,WAAYT,GAAOrG,IAAIqG,GAAOrO,eAC9B+O,iBAAkBV,GAAOrG,IAAIqG,GAAOrO,eACpCgP,OAAQX,GAAOrG,IAAIqG,GAAOrO,iBAC1B,CACA/L,QAAS,KAAO,CACZwa,KAAM,CACF/D,KAAM,mBAEVgE,MAAO,GACPC,YAAa,QAGrBM,OAAQZ,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mBACvEwJ,SAAUb,GAAO9L,QAAQoF,IAAcC,EAAU,yBACjDuH,aAAcd,GAAOrG,IAAIqG,GAAOjO,SAASiO,GAAOjO,SAASuH,OAEzDyH,QAASf,GAAOrG,IAAIqG,GAAOxG,WAAW,CAClCwH,SAAUhB,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACzE4J,KAAMjB,GAAOrG,IAAIqG,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mBACrF2G,QAASgC,GAAOrG,IAAIqG,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eACxF6J,WAAYlB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,SAEzD,CAAExX,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZib,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjBhI,SAAS,uBAAwB4G,GAAOxG,WAAW,CACvD4H,QAAS9H,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMF,EAAY1K,IAAI,0BAC7E4U,WAAYrB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrCwF,OAAQgB,GAAOvO,IAAImhB,EAAiB,CAChC/hB,WAAsD,yBAArC9K,EAAKsF,MAAM5P,KAAK,WAAWgR,SAE/CuT,GAAO/K,QAAS,CAAC,MAAO,CAAExZ,KAAM,aAChCukB,GAAO9K,MAAO,CACXoM,+BAAgC,CAC5BlH,MAAO4F,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YACtEkK,gBAAiBvB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACzDgI,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BiI,yBAA0B,CACtBZ,OAAQgS,EACRnR,QAASmR,EACTlR,MAAOkR,GAEXjR,0BAA2B,CACvBlF,OAAQuD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,cAE3EuK,8BAA+B,CAC3B3T,KAAM+R,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACrEwK,GAAI7B,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAEvEyK,gCAAiC,CAC7BC,QAAS/B,GAAOrG,IAAIqG,GAAOjO,SAAS6gB,KAExC5Q,6BAA8B,CAC1BpI,MAAOL,EAAU,eAErB0I,yBAA0B,CACtB5F,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/B2I,kCAAmC,CAC/BC,SAAUyQ,EACVxQ,OAAQwQ,GAEZvQ,4BAA6B,CACzBpD,QAASe,GAAOrG,IAAIqG,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAAmB2I,GAAOxG,WAAW,CACxH0E,UAAW3E,EAAU,cACrB4E,SAAU5E,EAAU,kBAExBuO,OAAQ9H,GAAOrG,IAAIiZ,IAEvBtQ,wBAAyB,CACrBlI,MAAO4F,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YACtErW,MAAOgf,GAAOrG,IAAIqG,GAAO9L,QAAQoF,IAAcA,IAAc,CAAEnF,WAAY,CAAE+C,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,CAAEtU,KAAM,gBAE7I8mB,2BAA4B,CACxB3F,OAAQrD,EAAU,cAClB8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BiJ,+BAAgC,CAC5BC,OAAQzC,GAAOrG,IAAIJ,EAAU,sBAEjCmJ,iCAAkC,CAC9BjI,OAAQmY,EACRjQ,aAAc3C,GAAOrG,IAAIJ,EAAU,6BAEvCw7B,6BAA8B,CAC1BC,eAAgBh1B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnCqJ,0BAA2B,CACvBvG,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BsJ,+BAAgC,CAC5BpI,OAAQmY,EACRvW,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BuJ,gCAAiC,CAC7Bvc,SAAUyZ,GAAOrG,IAAIJ,EAAU,wBAEnCwJ,8BAA+B,CAC3BC,MAAOhD,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChCyJ,MAAO1J,EAAU,cACjB2J,SAAU3J,EAAU,cACpB4J,KAAM5J,EAAU,iBAEpB6J,MAAOpD,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,qBAEhD8J,oCAAqC,CACjCC,MAAO/J,EAAU,cACjBiD,WAAYjD,EAAU,cACtB8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BsZ,+BAAgC,CAC5BxW,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BhT,SAAUyZ,GAAOrG,IAAIJ,EAAU,wBAEnCgK,+BAAgC,CAC5BC,oBAAqBjK,EAAU,cAC/BwI,QAAS/B,GAAOrG,IAAIqG,GAAOjO,SAAS6gB,KAExCnP,uBAAwB,CACpBhF,SAAUuB,GAAOrG,IAAIJ,EAAU,uBAC/B4E,SAAU5E,EAAU,eAExB0uB,6BAA8B,CAC1BC,UAAWtV,EACXuV,UAAWvV,GAEflP,qBAAsB,CAClBnd,SAAUyZ,GAAOrG,IAAIJ,EAAU,wBAEnCoK,0BAA2B,CACvBqxB,eAAgBh1B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnCuK,yBAA0B,CACtB1J,MAAO4F,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YACtErW,MAAOgf,GAAOrG,IAAIqG,GAAO9L,QAAQoF,IAAcA,IAAc,CAAEnF,WAAY,CAAE+C,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,CAAEtU,KAAM,eACzI4gB,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BhT,SAAUyZ,GAAOrG,IAAIJ,EAAU,wBAEnCuZ,4CAA6C,CACzCC,WAAYzZ,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAEpE0M,+BAAgC,CAC5BtB,OAAQzC,GAAOrG,IAAIJ,EAAU,qBAC7BkB,OAAQmY,GAEZI,0CAA2C,CACvC3W,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BkB,OAAQmY,GAEZ5O,iCAAkC,CAC9BvJ,OAAQmY,EACRjQ,aAAc3C,GAAOrG,IAAIJ,EAAU,6BAEvC0K,4BAA6B,CACzBC,OAAQ5K,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,cAEhE49B,gCAAiC,CAC7BD,eAAgBh1B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnC6K,yBAA0B,CACtB7d,SAAUyZ,GAAOrG,IAAIJ,EAAU,wBAEnC8K,6BAA8B,CAC1BjK,MAAO4F,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAE1EiN,0BAA2B,CACvBjI,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BgL,4BAA6B,CACzB9J,OAAQmY,GAEZpO,wBAAyB,CACrB/J,OAAQmY,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,gBAAiB7Z,EAAU,eAE/B8Z,4CAA6C,CACzC5Y,OAAQuF,GAAOrG,IAAIJ,EAAU,qBAC7B8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BkL,2BAA4B,CACxBhG,SAAUuB,GAAOrG,IAAIJ,EAAU,kBAEnCmL,uBAAwB,CACpBrI,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/B6uB,uBAAwB,CACpB/rB,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BoL,2BAA4B,CACxBxC,SAAUnC,GAAOrG,IAAIJ,EAAU,qBAC/B8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BqL,4BAA6B,CACzBre,SAAUyZ,GAAOrG,IAAIJ,EAAU,0BAGxC,CAAE1c,QAAS,gBACf,CAAE+T,SAAU,YAAa/T,QAAS,8CClPlCmO,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1B2R,iBAAyBA,cAAsBA,gBAAwBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,gBAAwBA,sBAAyB,QAC1Q0I,EAASlL,0BACgB,CAC3BshB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,iCACZiY,MAAO,EACPrX,OAAQ,WAENkkB,EAA2B,CAC7BC,kBAAmB,CACflR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEViR,oBAAqB,CACjBnR,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVkR,2BAA4B,CACxBpR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVyQ,0BAA2B,CACvB3Q,QAAS,EACTC,WAAY,EACZC,KAAM,UAEVmR,uBAAwB,CACpBrR,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVc,sBAAuB,CACnBhB,QAAS,GACTC,WAAY,EACZC,KAAM,WAEVM,sBAAuB,CACnBR,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVoR,2BAA4B,CACxBtR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVY,0BAA2B,CACvBd,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVqR,qBAAsB,CAClBvR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVW,6BAA8B,CAC1Bb,QAAS,GACTC,WAAY,EACZC,KAAM,WAEVgB,oBAAqB,CACjBlB,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVsR,oBAAqB,CACjBxR,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVK,4BAA6B,CACzBP,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVO,uBAAwB,CACpBT,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVI,4BAA6B,CACzBN,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVuR,sBAAuB,CACnBzR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVwR,qBAAsB,CAClB1R,QAAS,GACTC,WAAY,EACZC,KAAM,kCAGiB,CAC3B9T,kCACAC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,mBAEViY,cAAe,CACXhY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVgX,MAAO,CACH4X,UACArX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACAE,uBAAuB,EACvBD,uBAAuB,EACvBU,UAAW,CACPpqB,gBACAqqB,KAAM,EACNllB,OAAQ,GAEZmlB,aAAc,CACVtqB,OAAQ,SACRqqB,KAAM,EACNllB,OAAQ,GAEZ4kB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,MAGlBukB,QAAS,CACLC,QAAS,CACLvgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IAE7BF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhC3oB,MAAO,CACH0oB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,IAE1BJ,YAAa,CACTG,eACAC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAElCH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhCugB,gBAAiB,CACbxgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAG7CR,WAAY,CACRiP,WAAY,CACRvlB,SAAU,GACVkT,OAAQ,EACRpV,MAAO,KAEXwY,WAAYmgB,iCAGOt+B,EAASO,SAC1BmC,EAAaD,EAAOvC,WAAW5S,UAAK,EAAWiT,GAC/CoC,EAAYF,EAAO1C,UAAUzS,UAAK,EAAW0S,KAC3CwC,SAAS,cAAeC,EAAO5H,IAAI4H,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC1DqC,WAAYL,EAAOM,IAAIN,EAAOnF,QAAQoF,IAAcA,IAAc,CAAEnF,WAAY,CAAE+C,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,CAAEtU,KAAM,eAC/I,CAAEoB,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ6T,KAAM,yBAGNL,SAAS,cAAeC,EAAO5H,IAAI4H,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC1DqC,WAAYL,EAAOM,IAAIN,EAAOnF,QAAQoF,IAAcA,OACrD,CAAEzc,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ6T,KAAM,kBACNC,WAAY,CACRE,MAAS,YAIbR,SAAS,YAAaC,EAAO5H,IAAI4H,EAAOtH,SAASsH,EAAOjF,WAAW,CAAEC,SAAS,IAAS,CAAEnC,UAAW,EAAGC,UAAW,IAAM,CAC5HvM,QAAS,IAAM,CAAC,EAAG,EAAG,YAEpB6iC,EAAUp0B,GAAYgF,EAAOM,IAAIN,EAAOzF,WAAW,CACrD,CACI/X,KAAM,SACNkL,KAAMsS,EAAOjF,WAAW,CAAEC,QAAAA,IAC1BR,OAASxT,QAAYmM,EAAIiC,cAAiB,IAANpO,EAAkB,EAAmE,UAAxC,UAAXA,EAAE4R,WAAwB,IAAPzF,EAAgBA,EAAKnM,EAAE6E,WAAwB,IAAPuJ,EAAgBA,EAAK,IAE1J,CACI5S,KAAM,SACNkL,KAAMsS,EAAOG,WAAW,CACpBvH,IAAKoH,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,QAAAA,KACpCnP,IAAKmU,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,QAAAA,MACrC,CAAExX,QAAS,UACdgX,OAASxT,IAAO,CACZ4R,IAAK5R,MAAAA,EAA6BA,EAAI,EACtC6E,IAAK7E,MAAAA,EAA6BA,EAAI,UAI1C+Y,SAAS,aAAcqvB,GAAO,MAC9BrvB,SAAS,eAAgBqvB,OACzBrvB,SAAS,YAAaC,EAAOzF,WAAW,CAC5C,CACI/X,KAAM,SACNkL,KAAMsS,EAAOG,WAAW,CACpBvH,IAAKoH,EAAOM,IAAIJ,EAAU,oBAC1BrU,IAAKmU,EAAOM,IAAIJ,EAAU,uBAGlC,CACI1d,KAAM,SACNkL,KAAMsS,EAAOjF,WAAW,CAAEC,SAAS,MAExC,CAAExX,QAAS,iBACR6rC,EAAiB,CAACrxB,EAAMsxB,EAAYC,EAAYC,EAAeC,EAAejsC,EAASgW,SACrFk2B,EAAc,GACdD,UACO70B,KAAKpB,EAAMi2B,IAAgBvnC,eAClBlD,GAAKgb,EAAO5H,IAAIoB,EAAMi2B,GAAezqC,GAAI,CACjDwS,gBAA6C,IAA5B9K,EAAKtK,KAAK,QAAQgR,iBAIzCs2B,EAAW1pB,EAAOG,WAAWhI,GAC/B3V,KAAMwd,EAAO5H,IAAI4H,EAAOM,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAAA,MAAY,CAClFsJ,OAAQ,KAAM,KAEjBtH,EAAOpE,QAAS,CAAC,CAAExZ,KAAM,UACzB4d,EAAOnE,MAAOrC,GACZk2B,GACJ,CAAElsC,QAAAA,EAASiZ,sBAAsB,IAC9BvC,EAAU,CAAC,CACT1X,KAAM8sC,EACN5hC,KAAM8L,EAAMg2B,GAAeD,YAE/BE,KACQrtC,KAAK,CACTI,KAAM,SACNqX,YACAnM,KAAMg8B,WAGP9uB,KAAKpB,GAAOtR,eACP9F,KAAK,CACTI,KAAMwC,EACNuG,MAAQvE,QACAmM,KACS,cAAwE,UAAlDnM,MAAAA,OAA6B,EAASA,EAAExE,YAAyB,IAAP2Q,OAAgB,EAASA,EAAG9M,QAAQ,cAAe,OACnIrB,SACF,QACL4V,EAAO5T,EAAIoI,OAAOwL,KAAK5T,GAAK,SACd,iBAANA,IAAiF,kBAA1B,EAAS4T,EAAKzY,SAAgF,kBAA1B,EAASyY,EAAKzY,SAA2E,uBAAtB,EAASyY,EAAK,MAE9NlN,KAAMg8B,EACNlvB,OAASxT,IAAO,CAAExE,KAAMwC,SAGzBgb,EAAOzF,WAAWL,EAAS,CAAE1W,QAAAA,EAASmd,cAAe,GAAGnd,cAE3Duc,SAAS,kBAAmBsvB,EAAe,4BAA6B,SAAU,QAAS,qBAAsB,oBAAqB,kBAAmB,CAC7JM,qBAAsB,CAClBhqC,MAAOqa,EAAOjF,cAElB60B,oBAAqB,CACjBh3B,IAAKsH,EAAU,mBACfrU,IAAKqU,EAAU,oBAEnB2vB,qBAAsB,CAClB5uC,EAAGif,EAAU,mBACb1Y,EAAG0Y,EAAU,oBAEjB4vB,kBAAmB,CACfjiC,OAAQqS,EAAU,4BAClB8T,MAAO/T,EAAW,CAAEpC,UAAW,cAC/Bqd,MAAOlb,EAAOM,IAAIN,EAAOjF,oBAGzBgF,SAAS,2BAA4BsvB,EAAe,2BAA4B,SAAU,SAAU,oBAAqB,KAAM,iBAAkB,CACrJ5U,kBAAmB,CACfpxB,KAAM4W,EAAW,CAAEpC,UAAW,SAAUlK,OAAQ,CAAE8c,OAAQ,WAAYjuB,KAAM,WAAYyxB,eAAe,MAE3G8b,oBAAqB,CACjBliC,OAAQmS,EAAO5H,IAAI6H,EAAW,CAAEtC,KAAM,kBAAoB,CAAEpR,QAAS,IAAM,eAG3EwT,SAAS,eAAgBsvB,EAAe,yBAA0B,SAAU,SAAU,oBAAqB,KAAM,eAAgB,CACrIW,oBAAqB,CACjBvhB,OAAQxO,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eAEhE+xB,oBAAqB,CACjBliC,OAAQmS,EAAO5H,IAAI6H,EAAW,CAAEtC,KAAM,gBAAkB,CAAEpR,QAAS,IAAM,6BAGxDoM,GAAW02B,EAAe,sBAAuB,SAAU,QAAS,qBAAsB,KAAM,iBAAkB,CACvIM,qBAAsB,CAClBhqC,MAAOqa,EAAOjF,WAAWpC,IAE7Bi3B,oBAAqB,CACjBjqC,MAAOqa,EAAOG,WAAW,CACrB8vB,cAAejwB,EAAOjF,WAAWpC,GACjCu3B,cAAelwB,EAAOjF,WAAWpC,MAGzCw3B,2BAA4B,CACxBxqC,MAAOqa,EAAOG,WAAW,CACrBvH,IAAKoH,EAAOjF,aACZlP,IAAKmU,EAAOjF,aACZq1B,KAAMpwB,EAAOjF,aACbs1B,UAAWrwB,EAAOjF,gBAG1Bu1B,sBAAuB,CACnB3qC,MAAOqa,EAAOG,WAAW,CACrBvH,IAAKoH,EAAOjF,aACZlP,IAAKmU,EAAOjF,aACZw1B,QAASvwB,EAAOjF,oBAIpBgF,SAAS,iBAAkBzI,EAAQk5B,+BACpB73B,GAAW02B,EAAe,oBAAqB,SAAU,QAAS,qBAAsB,KAAM,eAAgB,CACjIM,qBAAsB,CAClBhqC,MAAOqa,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,KAEjDi3B,oBAAqB,CACjBjqC,MAAOqa,EAAOG,WAAW,CACrB8vB,cAAejwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,IACrD83B,cAAezwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,OAG7D+3B,6BAA8B,CAC1B/qC,MAAOqa,EAAOG,WAAW,CACrB8vB,cAAejwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,IACrD83B,cAAezwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,OAG7Dg4B,oBAAqB,CACjBhrC,MAAOqa,EAAOG,WAAW,CACrB8vB,cAAejwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,IACrD83B,cAAezwB,EAAOjF,WAAW5C,GAAE6C,SAAS,GAASrC,IACrD8V,OAAQvO,EAAU,mBAG1Bw8B,0BAA2B,CACvBC,aAAc38B,EAAOtH,SAASsH,EAAOG,WAAW,CAC5CqN,OAAQxN,EAAOjF,WAAW,CAAEC,SAAS,IACrChS,KAAMkX,EAAU,wBAIpBH,SAAS,eAAgBzI,EAAQs5B,iBACjC7wB,SAAS,kBAAmBC,EAAOzF,WAAW,CAAC,WAAY,eAAgB,aAAajO,SAAU,CACtG9J,KAAMV,EACNyJ,cAA6D,kBAAnB,EAASvE,EAAElF,IACrD0Y,eAAmBrH,EAAIiC,EAAIC,QAAY,EAAGvT,GAAqI,UAA9C,UAAjD,UAAhBkF,EAAEie,gBAA6B,IAAP9R,EAAgBA,EAAKnM,EAAE6pC,oBAAiC,IAAPz7B,EAAgBA,EAAKpO,EAAE8pC,iBAA8B,IAAPz7B,EAAgBA,EAAK,IAC5M3H,KAAMsS,EAAOG,WAAW,EACnBre,GAAIke,EAAOjF,WAAW,CAAEC,SAAS,EAAMpC,UAAY/M,IAAK,aAE5D,CAAErI,QAAS,uBACRuc,SAAS,kBAAmBsvB,EAAe,uBAAwB,SAAU,QAAS,qBAAsB,KAAM,kBAAmB,CACzIM,qBAAsB,CAClBhqC,MAAOua,EAAU,oBAErB0vB,oBAAqB,CACjBK,cAAe/vB,EAAU,mBACzBuwB,cAAevwB,EAAU,oBAE7BwwB,6BAA8B,CAC1BT,cAAe/vB,EAAU,mBACzBuwB,cAAevwB,EAAU,mBACzBwgB,MAAO1gB,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,EAAMpC,IAAK,MAE9Dm4B,kCAAmC,CAC/Bd,cAAe/vB,EAAU,mBACzBuwB,cAAevwB,EAAU,mBACzBwgB,MAAO1gB,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,EAAMpC,IAAK,MAE9D03B,sBAAuB,CACnBL,cAAe/vB,EAAU,mBACzBuwB,cAAevwB,EAAU,mBACzBqwB,QAASvwB,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,0BAG/BrC,GAAWqH,EAAOG,WAAW,CACnD8vB,cAAejwB,EAAOjF,WAAWpC,GACjC83B,cAAezwB,EAAOjF,WAAWpC,IAClC,CAAEnV,QAAS,YACNuc,SAAS,mBAAoBC,EAAO5H,IAAI4H,EAAOG,WAAW,CAC9D8b,YAAajc,EAAOjF,WAAW,CAAEC,SAAS,IAC1CkhB,WAAYlc,EAAOtH,SAASsH,EAAOjF,eACpC,CAAEvX,QAAS,qBAAuB,CACjC+I,QAAS,KAAO,CACZ0vB,eACAC,WAAY,CAAC,EAAG,yBAGC,CAAC8U,EAAmB/wB,EAAW,CAAEtC,KAAM,qBAAwB,CACpFiD,wBAAyB,CACrBC,MAAOb,EAAOtH,SAASwH,EAAU,eAErCY,iCAAkC,CAC9BC,MAAOd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC3DgD,WAAYhB,EAAOnF,QAAQoF,IAAcA,IAAc,CAAEnF,WAAY,CAAE+C,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,CAAEtU,KAAM,eAEvI6e,qCAAsC,CAClCC,UAAWhB,EAAU,4BAEzBiB,8BAA+B,CAC3BC,OAAQ4vB,EACR9vB,UAAWhB,EAAU,qBAEzBmB,0BAA2B,CACvBD,OAAQ4vB,EACR1vB,OAAQtB,EAAOnF,QAAQoF,EAAW,CAAEpC,UAAW,cAAgBqC,EAAU,eAE7EsB,qBAAsB,CAClBC,KAAMvB,EAAU,cAEpBwB,6BAA8B,CAC1BC,QAAS3B,EAAOM,IAAIN,EAAO1H,gBAE/BsJ,2BAA4B,CACxBC,QAAS7B,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,KACjD8G,QAAS9B,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,KACjD+G,QAAS/B,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,KACjDkG,UAAWhB,EAAU,uBAEzB8B,uBAAwB,CACpBd,UAAWhB,EAAU,mBAEzB+B,0BAA2B,CACvBC,OAAQlC,EAAOjF,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAE7CsW,uCAAwC,CACpCD,OAAQlC,EAAOjF,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACzCuW,mBAAoBpC,EAAOjF,cAE/BsH,sBAAuB,CACnBhZ,KAAM4W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAE9DsE,wBAAyB,CACrBC,YAAatC,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACjEwE,QAASxC,EAAOtH,SAASsH,EAAOjF,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,MAE9D4W,uBAAwB,CACpB9c,MAAOua,EAAU,aACjBwC,OAAQ1C,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,MAEpDi2B,wBAAyB,CACrBtrC,MAAOua,EAAU,mBACjBgxB,MAAOhxB,EAAU,cAErByC,0BAA2B,CACvBC,QAAS5C,EAAOM,IAAIN,EAAO1H,eAC3BuK,WAAY7C,EAAOM,IAAIN,EAAO1H,kCAGd,CAAC0P,EAAYmpB,EAAiBlxB,EAAW,CAAEtC,KAAM,gBAAkBqzB,EAAmB/wB,EAAW,CAAEtC,KAAM,2BACvHnE,EAAQ,CACV0U,wBAAyB,CACrB3L,YAAatC,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACjEmQ,QAASlO,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMF,EAAY1K,IAAI,qCAC7Egb,WAAYpO,EAAO5H,IAAI4H,EAAOG,WAAW,CACrCkO,gBAAiBrO,EAAO5H,IAAI4H,EAAOjF,aAAc,CAC7CvD,WAAsD,kCAArC9K,EAAKsF,MAAM5P,KAAK,WAAWgR,QAEhDkb,MAAOtO,EAAO5H,IAAI4H,EAAOjF,aAAc,CACnCvD,WAAsD,wCAArC9K,EAAKsF,MAAM5P,KAAK,WAAWgR,QAEhDmb,YAAavO,EAAO5H,IAAI4H,EAAOjF,aAAc,CACzCvD,WAAsD,wCAArC9K,EAAKsF,MAAM5P,KAAK,WAAWgR,UAEhD,CACAoE,WAAgD,wBAA/B9K,EAAKtK,KAAK,WAAWgR,SAG9Cob,sBAAuB,CACnBC,OAAQ0iB,GAEZziB,qBAAsB,CAClBD,OAAQvO,EAAU,gBAClByO,IAAK3O,EAAOtH,SAASsH,EAAOG,WAAW,CACnCsO,OAAQxO,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAE4D,SAAU,CAAEqX,OAAQ,cAAeliB,KAAM,CAAC,MAAO,MAAO,MAAO,CAAEtK,KAAM,eAC7HyL,OAAQoS,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAE4D,SAAU,oBAChEsX,GAAI5O,EAAW,CAAEtC,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAEna,QAAS,oBAElBsrB,uBAAwB,CACpB/N,MAAOd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC3DgD,WAAYhB,EAAOtH,SAASuH,EAAW,CAAEpC,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,MAAO,CAAEtU,KAAM,eAEhH2sB,6BAA8B,CAC1BzL,aAActD,EAAOM,IAAIN,EAAOtH,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,oBAEjGgR,gCAAiC,CAC7BzL,OAAQrD,EAAU,mBAClB+O,SAAUjP,EAAOM,IAAIN,EAAO1H,gBAEhC4W,4BAA6B,CACzBC,YAAanP,EAAOM,IAAIL,EAAW,CAAEtC,KAAM,iBAC3CyR,WAAYpP,EAAOM,IAAIL,EAAW,CAAEtC,KAAM,oBAC1C0R,KAAMrP,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,KAC9CsU,cAAetP,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,KACvDuU,qBAAsBvP,EAAOM,IAAIN,EAAO1H,gBAE5CkX,6BAA8B,CAC1BpO,OAAQ4vB,GAEZvhB,wBAAyB,CACrBC,MAAOxP,EAAU,cAErByP,4BAA6B,CACzBzM,MAAOhD,EAAU,mBACjBwP,MAAO1P,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,MAEnD4U,2BAA4B,CACxBC,UAAW7P,EAAOtH,SAASwH,EAAU,wBAEzCkxB,+BAAgC,CAC5BC,SAAUrxB,EAAOtH,SAASsH,EAAOG,WAAW,CACxCgR,QAASlR,EAAW,CAAEtC,KAAM,mBAC5B1C,MAAOgF,EAAW,CAAEtC,KAAM,iBAE9B2zB,OAAQtxB,EAAOM,IAAIN,EAAO1H,gBAE9BwX,yBAA0B,CACtBzY,QAAS2I,EAAOtH,SAASwH,EAAU,gBAEvC6P,sBAAuB,CACnB7M,MAAOhD,EAAU,mBACjB/I,IAAK6I,EAAOM,IAAIN,EAAO1H,gBAE3B0X,uBAAwB,CACpB5G,OAAQlJ,EAAU,mBAClB/I,IAAK6I,EAAOM,IAAIN,EAAO1H,gBAE3Bi5B,6BAA8B,CAC1BjuB,aAActD,EAAOnF,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAAoBkC,EAAU,oBAC/G/I,IAAK6I,EAAOM,IAAIN,EAAO1H,gBAE3B2X,2BAA4B,CACxB5mB,KAAM4W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAC1DkS,KAAMlQ,EAAOM,IAAIN,EAAOjF,WAAW,CAAEC,SAAS,MAElDmV,qBAAsB,CAClB/O,OAAQpB,EAAOM,IAAI0wB,GACnB5gB,KAAMpQ,EAAOtH,SAASwH,EAAU,mBAChC7Z,QAAS2Z,EAAOM,IAAIN,EAAO1H,gBAE/B+X,qBAAsB,CAClBjP,OAAQpB,EAAOM,IAAI0wB,GACnB3nC,KAAM2W,EAAOM,IAAIJ,EAAU,oBAE/BoQ,oBAAqB,CACjBrN,IAAKhD,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,sBAExEqlC,uBAAwB,CACpBlmC,GAAIuJ,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAE5DuS,4BAA6B,CACzB3K,QAAS5F,EAAOM,IAAIN,EAAOtH,SAASsH,EAAOG,WAAW,CAClD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAC1D8G,SAAU5E,EAAU,yBAI1B9I,EAAM,YACAhE,IAAI,sBAAsBlL,eAC9BhG,GAAKiW,OAAKqB,EAAMtX,IAAO8lB,MAExB5Q,0BAEqB1J,GAASsS,EAAOwY,eAAevY,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,qBAAwBtQ,EAAM,CAC7I+qB,sBAAuBnhB,EAAQohB,qBAC/BC,uBAAwB,CACpBtvB,KAAM,uBACN+sB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACfgC,WAAY,KACZ/B,eAAgB,IAChBlR,QAAS,uBACTmR,WAAY,8BACZiY,MAAO,EACPrX,OAAQ,KAEZmB,oBAAqB,CACjBzvB,KAAM,oBACN+sB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACfgC,WAAY,IACZ/B,eAAgB,IAChBlR,QAAS,oBACTmR,WAAY,2BACZiY,MAAO,EACPrX,OAAQ,8BAGgBjqB,GAASsS,EAAOwY,eAAevY,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,8BAAiCtQ,EAAM,CACtJ+qB,sBAAuBnhB,EAAQyhB,qBAC/BC,mBAAoB,CAChBhC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,wBAEViY,cAAe,CACXhY,WAAY,CACRE,MAAO,KAEXH,KAAM,kBAEVgX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAC,uBAAuB,EACvBslB,mBAAmB,EACnB5kB,UAAW,CACPpqB,OAAQ,MACRqqB,KAAM,EACNllB,OAAQ,GAEZmlB,aAAc,CACVtqB,OAAQ,IACRqqB,KAAM,EACNllB,WAEJ4kB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAGlBukB,QAAS,CACLC,QAAS,CACLvgB,eACAC,WAAY,CAAC,EAAG,IAEpBF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,IAEpB3oB,MAAO,CACH0oB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,eACAC,WAAY,CAAC,EAAG,IAEpBH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,IAEpBugB,gBAAiB,CACbxgB,eACAC,WAAY,CAAC,EAAG,KAGxBR,WAAY,CACRA,WAAYmgB,IAGpB5iB,gBAAiB,CACbjC,kCACAC,mCACAC,UAAW,EACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,uBAEViY,cAAe,CACXjY,KAAM,iBAEVgX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvB3B,uBAAuB,EACvBslB,mBAAmB,EACnB5kB,UAAW,CACPpqB,gBACAqqB,KAAM,GACNllB,YAEJmlB,aAAc,CACVtqB,gBACAqqB,KAAM,EACNllB,OAAQ,GAEZ4kB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,MAGlBukB,QAAS,CACLC,QAAS,CACLvgB,YAAa,EACbC,WAAY,CAAC,IAEjBF,UAAW,CACPC,YAAa,EACbC,WAAY,CAAC,IAEjB3oB,MAAO,CACH0oB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,YAAa,EACbC,WAAY,CAAC,IAEjBH,SAAU,CACNE,YAAa,EACbC,WAAY,CAAC,IAEjBugB,gBAAiB,CACbxgB,YAAa,EACbC,WAAY,CAAC,KAGrBR,WAAY,CACRA,WAAYmgB,IAGpB1iB,sBAAuB,CACnBnC,kCACAC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,mBAEViY,cAAe,CACXhY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVgX,MAAO,CACH4X,UACArX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACAE,uBAAuB,EACvBD,uBAAuB,EACvB6B,WAAW,EACXnB,UAAW,CACPpqB,gBACAqqB,KAAM,EACNllB,OAAQ,GAEZmlB,aAAc,CACVtqB,OAAQ,SACRqqB,KAAM,EACNllB,OAAQ,GAEZ4kB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,MAGlBukB,QAAS,CACLC,QAAS,CACLvgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IAE7BF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhC3oB,MAAO,CACH0oB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,IAE1BJ,YAAa,CACTG,eACAC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAElCH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhCugB,gBAAiB,CACbxgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAG7CR,WAAY,CACRiP,WAAY,CACRvlB,SAAU,GACVkT,OAAQ,EACRpV,MAAO,KAEXwY,WAAYmgB,IAGpBxiB,kBAAmB,CACfrC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,mBAEViY,cAAe,CACXhY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVgX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAC,uBAAuB,EACvBslB,mBAAmB,EACnB5kB,UAAW,CACPpqB,OAAQ,MACRqqB,KAAM,EACNllB,OAAQ,GAEZmlB,aAAc,CACVtqB,OAAQ,IACRqqB,KAAM,EACNllB,WAEJ4kB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAGlBukB,QAAS,CACLC,QAAS,CACLvgB,eACAC,WAAY,CAAC,EAAG,IAEpBF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,IAEpB3oB,MAAO,CACH0oB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,eACAC,WAAY,CAAC,EAAG,IAEpBH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,IAEpBugB,gBAAiB,CACbxgB,eACAC,WAAY,CAAC,EAAG,KAGxBR,WAAY,CACRiP,WAAY,CACRvlB,SAAU,GACVkT,OAAQ,EACRpV,MAAO,KAEXwY,WAAYmgB,IAGpBviB,6BAA8B,CAC1BtC,kCACAC,mCACAC,UAAW,EACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXhY,KAAM,mBAEViY,cAAe,CACXhY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVgX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvB3B,uBAAuB,EACvBslB,mBAAmB,EACnB5kB,UAAW,CACPpqB,gBACAqqB,KAAM,GACNllB,YAEJmlB,aAAc,CACVtqB,gBACAqqB,KAAM,EACNllB,OAAQ,GAEZ4kB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,MAGlBukB,QAAS,CACLC,QAAS,CACLvgB,YAAa,EACbC,WAAY,CAAC,IAEjBF,UAAW,CACPC,YAAa,EACbC,WAAY,CAAC,IAEjB3oB,MAAO,CACH0oB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,YAAa,EACbC,WAAY,CAAC,IAEjBH,SAAU,CACNE,YAAa,EACbC,WAAY,CAAC,IAEjBugB,gBAAiB,CACbxgB,YAAa,EACbC,WAAY,CAAC,KAGrBR,WAAY,CACRiP,WAAY,CACRvlB,SAAU,GACVkT,OAAQ,EACRpV,MAAO,KAEXwY,WAAYmgB,sBC7gC5BzsC,OAAOuC,eAAe6Z,GAAS,aAAc,CAAE7lB,OAAO,iCACvB,EAC/B,MAAMghB,GAAS7R,GACT8R,GAAW7R,2BACjB,SAA8BwI,EAASO,SAC7BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,YAAa4G,GAAO8E,aAAavL,EAAU,aAAc,CAAES,cAAe,iBACnFZ,SAAS,YAAa4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACvDuL,UAAWzL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,0BAC9D2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,eACzBukB,GAAO9K,MAAO+K,GAAS+E,kBACzB,CAAEpU,SAAU,YAAa/T,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZmf,UAAW,8BACXtK,OAAQ,uBCfpBhS,OAAOuC,eAAesoB,GAAS,aAAc,CAAEt0B,OAAO,iCACvB,EAC/B,MAAMghB,GAAS7R,GACT8R,GAAW7R,2BACjB,SAA8BwI,EAASO,SAC7BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,YAAa4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACvD3d,KAAMokB,GAASuT,qBAAqBja,EAAU,mBAC9Cka,UAAWzT,GAAOxG,WAAW,CACzB3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,+BACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXwe,kBAAmB,CACfnK,KAAMvJ,GAAO5L,WAAW,CAAEC,SAAS,IACnCsf,SAAU1T,GAAS2T,qBAAqBra,EAAU,mBAClDsa,aAAc7T,GAAOxG,WAAW,CAC5B3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,4BACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACX4e,kBAAmB,CACf/W,MAAOzD,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,sBAE/D0c,wBAAyB,CACrBC,OAAQhU,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,CAAC,sBAAuB,wBAC/Fgd,OAAQrU,GAAOvO,IAAIuO,GAAOjO,SAASwH,EAAU,oBAAqB,CAC9D1I,gBAA+C,IAA9B9K,EAAKtK,KAAK,UAAUgR,MACrC7G,QAAS,IAAM,CAAC,CACRmX,MAAO,wBAIvBuX,yBAA0B,CACtBC,MAAOvU,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAClEmvB,OAAQrU,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,uBAEhF8a,oBAAqB,CACjB5I,KAAMvJ,GAAO5L,WAAW,CAAEC,SAAS,OAG5C,CAAEzD,SAAU,YAAakF,sBAAsB,KAEtD6e,iBAAkB,CACdhB,SAAU3T,GAAOxG,WAAW,CACxBuD,MAAOiD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,sBACtEud,MAAO5U,GAAOrG,IAAIqG,GAAOrO,eACzBkjB,SAAU7U,GAAOrG,IAAIqG,GAAOrO,eAC5BmjB,OAAQ9U,GAAOjO,SAASwH,EAAU,oBAClCwb,WAAYxb,EAAU,6BAInC,CAAEzD,sBAAsB,KAC5B,CAAElF,SAAU,OAAQ/T,QAAS,cAAgB,CAC5C+I,QAAS,WACC2jB,EAAOpkB,KAAK6vB,MAAuB,WAAjB7vB,KAAK8vB,UAA2B,iBACjD,CACHp5B,KAAM,sBACN43B,UAAW,CACP53B,KAAM,kBACN0tB,KAAAA,EACAsK,aAAc,CACVh4B,KAAM,kBACN0tB,KAAAA,EACAxM,MAAO,oBAEX4W,SAAU,kCAKpBwiB,EAAmBn2B,GAAOpM,WAAW,CACvC,CACI/X,KAAM,SACNkL,KAAMiZ,GAAO5L,WAAW,CAAEnC,OAAS/M,IAAK,IACxC2O,OAASxT,QAAYmM,SAA2B,UAAVnM,EAAE,UAAuB,IAAPmM,EAAgBA,EAAK,IAEjF,CACI3Q,KAAM,OACNkL,KAAMiZ,GAAOjO,SAASiO,GAAO5L,WAAW,CAAEnC,OAAS/M,IAAK,IAAM,CAAEgN,UAAW,EAAGC,UAAW,IACzF0B,OAASxT,GAAM,CAACA,MAAAA,EAA6BA,EAAI,EAAGA,MAAAA,EAA6BA,EAAI,QAGrF+Y,SAAS,kBAAmB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC7DuD,MAAOzD,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,qBAC3DoQ,WAAYzH,GAAOxG,WAAW,CAC1B2b,YAAaghB,EACb/gB,SAAU+gB,EACVL,gBAAiBK,EACjBN,QAASM,EACT9gB,UAAW8gB,EACXhgB,MAAOggB,EACP9pC,OAAQ2T,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,OAE9C,CAAErI,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZmX,MAAO,mBACP0K,WAAY,CACRyN,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACXhpB,OAAQ,mBCtGxB5D,OAAOuC,eAAewqB,GAAS,aAAc,CAAEx2B,OAAO,qCACnB,EACnC,MAAMghB,GAAS7R,GACT8R,GAAW7R,+BACjB,SAAkCwI,EAASO,SACjCmC,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5DiW,UAAWzP,GAAOrO,cAClB+d,QAAS1P,GAAOrO,cAChBge,YAAa3P,GAAOrO,cACpBie,qBAAsB5P,GAAOrO,cAC7Bke,UAAW7P,GAAOrO,cAClBme,UAAW9P,GAAOrO,cAClBoe,aAAc/P,GAAOrO,cACrBqe,YAAahQ,GAAOrO,cACpBse,iBAAkBjQ,GAAO5L,WAAW,CAAEnC,IAAK,KAAS/M,IAAK,MACzDgrB,cAAelQ,GAAO5L,aACtB8d,WAAYlS,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACpD8b,eAAgBnQ,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAChE+Z,QAASe,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFoZ,WAAY9W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAChEgxB,MAAOroB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,UAAY/M,IAAK,OAC3D8rB,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,QACzD,CAAErI,QAAS,wBAA8B,CACxC+I,QAAS,IAAMqa,GAAS8R,qBACxBriB,SAAU,CAAC3J,EAAM/G,EAAO8N,EAAQ0B,eACpBzH,EAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,SACD,EAASxP,EAAMqpC,qBAA+C,EAASrpC,EAAMgyB,QAAU,QACtHxgB,IAAIzK,EAAKtK,KAAK,UAAW,0BAA2B,oBAErB,EAASuD,EAAMmxB,8BAAwD,EAASnxB,EAAMgyB,WACrHxgB,IAAIzK,EAAKtK,KAAK,kBAAmB,sCAEF,EAASuD,EAAMgyB,QAAU,IAAO,KAC/DxgB,IAAIzK,EAAKtK,KAAK,UAAW,wBAAyB,kBAEnB,EAASuD,EAAMqpC,OAAS,IAAO,KAC9D73B,IAAIzK,EAAKtK,KAAK,SAAU,uBAAwB,IAEpDuD,mBCvCnByJ,OAAOuC,eAAe6/B,GAAS,aAAc,CAAE7rC,OAAO,oCACpB,EAClC,MAAMghB,GAAS7R,GACT8R,GAAW7R,8BACjB,SAAiCwI,EAASO,SAChCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,gBAAiB4G,GAAO8E,aAAavL,EAAU,YAAa,CAAES,cAAe,oBACxFqH,EAAa,CACfA,WAAYrB,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,kBAE7CH,SAAS,WAAY4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACtDwH,SAAU1H,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,yBAC7D2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,cACzBukB,GAAO9K,MAAO+K,GAAS6qB,cAAczpB,IACvC,CAAEzQ,SAAU,WAAY/T,QAAS,aAAe,CAC/C+I,QAAS,IAAM,CAAC,CACRob,SAAU,sBACVzE,MAAO,wBClBvB9T,OAAOuC,eAAeia,GAAS,aAAc,CAAEjmB,OAAO,sGAC0E,oBACvG,IAAIkmB,IAAI,CAC7B,CAAC,+BAAgC,CAAEC,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,IAAIF,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,MChFlCzc,OAAOuC,eAAeqa,GAAS,aAAc,CAAErmB,OAAO,iCACvB,EAC/B,MAAMghB,GAAS7R,GACTmX,GAAgBlX,GAChB6R,GAAW3R,2BACjB,SAA8BsI,EAASO,SAC7BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CkK,EAAa,CACfA,WAAYrB,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,qBAE/CgM,EAAyB/T,GAC3BgU,UAAWxF,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,oBAC7C8H,cAEoBoE,EAAYC,EAAcC,SAC3C9S,EAAQ,GACR+S,EAAuBC,GAAoB1O,EAC5C1K,IAAIiZ,GACJnc,gBACGiD,SACiD,UAAvBiZ,EAAWhZ,IAAItR,UAAuB,IAAPqR,EAAgBA,EAAK,IAC3DJ,UAAWyZ,EAAgB9P,SAAShY,kBAEnD+nB,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjC1pB,KAAK,CACPmJ,SAAemB,EAAK8P,WAAWpJ,IAAI,IAAIuT,GAAOtU,KAAK,CAAC,YAAcoa,EAClE/e,KAAM4e,EAAQC,EAAoBC,eAGpCpqB,KAAK,CAAEmJ,UAAY,EAAMmC,KAAM4e,EAAQD,KACtC1F,GAAOpN,WAAWC,SAEvBk4B,EAAwB9kB,EAAkBX,GAAcY,eAAgB,0BAA+B5M,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMxb,aAAgB8C,MAAQ9C,EAAO,2BAC1LmvC,EAAuB/kB,EAAkBX,GAAcc,cAAe,yBAA8B9M,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMxb,aAAgB8C,MAAQ9C,EAAO,0BACvLwqB,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBhN,EAAW,CAAEtC,KAAMnb,MACxH0qB,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBlN,EAAW,CAAEtC,KAAMnb,QAChHud,SAAS,aAAc4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACxD3d,KAAMmkB,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMF,EAAY1K,IAAI,yBACrFga,MAAOzG,GAAOrG,IAAIqG,GAAOjO,SAASiO,GAAOvO,IAAIuO,GAAOxG,WAAWhI,GAC3DkV,MAAOnN,EAAU,mBACjBoN,YAAa3G,GAAOrG,IAAIJ,EAAU,oBAClC7I,QAASsP,GAAOjO,SAASwH,EAAU,gBAChCgM,GACJ,CAAE3U,SAAU,OAAQ/T,QAAS,cAAgB,CAC5C+I,QAAS,KAAO,CACZ8gB,MAAO,EACPhW,QAAS,CAAC,CACF7U,KAAM,iBACN6G,KAAM,0BAItB8iB,UAAWxF,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,oBACjD,CAAE1c,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ6gB,MAAO,CAAC,CACAC,MAAO,EACPhW,QAAS,CAAC,CACF7U,KAAM,iBACN6G,KAAM,iCAKxBkkB,EAAY,CACd/V,gBACQrE,SACgC,UAAtBzG,EAAKsF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGhR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsBua,SAAShQ,EAAKtK,KAAK,QAAQgR,WAGvG2M,SAAS,aAAc4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACxD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,0BAC1DwP,OAAQ7G,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAAM2U,IAC5EE,QAAS9G,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAASuS,KACpE5G,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACX6R,yBAA0BvV,GACtB9V,SAAUskB,GAAOjO,SAASwH,EAAU,gBACjCgM,GAEPyB,oBAAqBxV,GACjB9O,KAAM4W,KACHiM,GAEP0B,kBAAmBzV,GACf9V,SAAUskB,GAAOjO,SAASwH,EAAU,gBACjCgM,GAEP2B,iBAAkB1V,GACd9O,KAAM4W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WACvDkO,GAEP4B,uBAAwB3V,GACpB9O,KAAM4W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBACvDkO,GAEP6B,qBAAsB5V,GAClB9V,SAAUskB,GAAOjO,SAASwH,EAAU,gBACjCgM,GAEP8B,gBAAiB7V,GACb9O,KAAM4W,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eAC1DiQ,OAAQtH,GAAOrG,IAAIqG,GAAOrO,gBACvB4T,KAGZ,CAAE1oB,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ/J,KAAM,iBACN6G,KAAM,yBAGN0W,SAAS,gBAAiB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC3DwH,SAAUgqB,GACThrB,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,cACzBukB,GAAO9K,MAAO+K,GAAS6qB,cAAczpB,EAAYkF,EAAsBF,IACzE,CAAEzV,SAAU,WAAY/T,QAAS,aAAe,CAC/C+I,QAAS,KAAO,CACZob,SAAU,sBACVzE,MAAO,SAGPnD,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5DuL,UAAWgmB,GACV/qB,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,eACzBukB,GAAO9K,MAAO+K,GAAS+E,eAAeqB,IACxC,CAAEzV,SAAU,YAAa/T,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZmf,UAAW,0BACXxJ,OAAQ,UAGRnC,SAAS,qBAAsB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAChEqQ,UAAWvQ,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eAC/D3U,KAAM4W,IACNwQ,OAAQvQ,EAAU,mBAClBwQ,UAAWzQ,EAAW,CAAEtC,KAAM,CAAC,WAAY,gBAAiB,oBAC5DgT,KAAMhK,GAAOiK,aAAa3Q,EAAW,CAAEtC,KAAM,WAC9C,CAAEna,QAAS,uBAAyB,CACnC+I,QAAS,KAAO,CACZikB,UAAW,+BACXnnB,KAAM,GACNonB,OAAQ,EACRC,UAAW,WACXC,KAAM,2BCnJlBvhB,OAAOuC,eAAekf,GAAS,aAAc,CAAElrB,OAAO,kCACtB,EAChC,MAAMghB,GAAS7R,4BAEf,SAA+ByI,EAASxY,KAE5Bgb,SAAS,cAAe4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACzD2Q,KAAMnK,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC/B4Q,YAAapK,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAL3C,EAKqE/M,IALrE,IAKkG,CAC9GU,QAAS,IANG,EAOZyL,UAAW,CAAC45B,EAAI5qC,IAPJ,IAOUA,EACtBiR,OAAQ,IAAM,CAAC,CAAE5O,KAAM,cAAesK,OAAQ,CARlC,GAQyDyJ,SARzD,MAUhB6J,YAAaN,GAAOrJ,UAAUC,EAAS,oBACvC,CACAhR,QAAS,KAAO,CACZwkB,YAbY,EAcZ9J,YAAa,SAGrB,CACA1a,QAAS,KAAO,CACZukB,KAAM,CACFC,YApBY,EAqBZ9J,YAAa,oBCxB7B7X,OAAOuC,eAAeyqB,GAAS,aAAc,CAAEz2B,OAAO,kCACtB,EAChC,MAAMghB,GAAS7R,4BACf,SAA+ByI,EAASO,SAC9BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CiF,EAAc4D,GAAOpM,WAAW,CAClC,CACI/X,KAAM,SACNkL,KAAMuS,IACNzF,UAA2B,kBAANxT,GAAgC,iBAANA,EAAkBA,EAAEsN,WAAa,IAEpF,CACI9R,KAAM,SACNkL,KAAMiZ,GAAO5L,aACbP,UAA2B,iBAANxT,EAAkBmS,SAASnS,GAAK,GAEzD,CACIxE,KAAM,SACNkL,KAAMiZ,GAAOxG,WAAW,CACpBvH,IAAK+N,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KAC7CnP,IAAK8a,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,OAEjDR,UAA2B,iBAANxT,EAAmB,CAAE4R,IAAK5R,EAAG6E,IAAK7E,GAAQ,IAEnE,CACIxE,KAAM,UACNkL,KAAMiZ,GAAOrO,cACbkC,UAAmB,SAANxT,GAAsB,IAANA,OAG7B+Y,SAAS,iBAAkB4G,GAAOxG,WAAW,CACjD4J,MAAOpD,GAAOrG,IAAIqG,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YACtFiF,IAAK0D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACpEkF,MAAOhD,EAAU,cACjBiD,WAAYjD,EAAU,cACtBkD,OAAQuD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aACvEqF,IAAKsD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,iBAAkBb,GAAI,CAAC,MAAO,CAAEtU,KAAM,cACrHkhB,aAAcqD,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,4BACpD,CAAE1c,QAAS,YACNuc,SAAS,wBAAyB4G,GAAOxG,WAAW,CACxDoC,YAAaoE,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAC5EuF,OAAQrD,EAAU,eACnB,CAAE1c,QAAS,mBACNuc,SAAS,kBAAmB4G,GAAOxG,WAAW,CAClD2hB,OAAQnb,GAAOrG,IAAIqG,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aACvFiF,IAAK0D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACpEqF,IAAKsD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,kBAAmBb,GAAI,CAAC,MAAO,CAAEtU,KAAM,eACtHuF,MAAOgf,GAAOrG,IAAIqG,GAAO9L,QAAQoF,IAAc8C,EAAa,CAAEjI,WAAY,CAAE+C,UAAW,kBAAmBlK,OAAQ,CAAE+C,GAAI,CAAC,MAAO,CAAEtU,KAAM,gBACzI,CAAEoB,QAAS,aACNuc,SAAS,kBAAmB4G,GAAOxG,WAAW,CAClDqD,MAAOmD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YACtEiF,IAAK0D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACpErW,MAAOgf,GAAOrG,IAAIqG,GAAO9L,QAAQoF,IAAc8C,KAChD,CAAEvf,QAAS,aACNuc,SAAS,qBAAsB4G,GAAOxG,WAAW,CACrDsD,SAAUkD,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnCza,EAAGwa,EAAU,gBACb1a,EAAG0a,EAAU,gBACb/V,EAAG+V,EAAU,mBAEjBwD,MAAOiD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,sBACtE2F,QAASgD,GAAOrG,IAAIL,EAAW,CAAEtC,KAAMG,EAAY1K,IAAI,8BAA8B9G,QAAStF,EAAET,MAAM,SACtGqd,UAAW+C,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAC1E6F,MAAO8C,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC0D,MAAO3D,EAAU,iBAErBmc,OAAQ1V,GAAOrG,IAAIqG,GAAOrO,eAC1ByI,MAAO4F,GAAOrG,IAAIJ,EAAU,oBAC5BsD,MAAOmD,GAAOrG,IAAIJ,EAAU,qBAC7B,CAAE1c,QAAS,gBACNuc,SAAS,sBAAuB4G,GAAOxG,WAAW,CACtD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eAC1D+F,KAAM9D,IACNta,MAAOua,EAAU,eAChByG,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXmI,kBAAmB,CACfD,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YAE9DiG,oBAAqB,CACjBF,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAE9DkG,iBAAkB,CACdH,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAE9DmG,mBAAoB,CAChBJ,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAE9DoG,sBAAuB,CACnBL,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAE9DqG,oBAAqB,CACjBN,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAE9DsG,mBAAoB,CAChBP,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAE9DuG,sBAAuB,CACnBR,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAE9DwG,mBAAoB,CAChBT,KAAM9D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,wBAI9D+B,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnDsE,SAAUkC,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,cACxC4C,MAAOL,EAAU,cACjBwE,aAAciC,GAAOrG,IAAIqG,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAAqB2I,GAAOpM,WAAW,CAC/H,CAAE/X,KAAM,UAAWkL,KAAMiZ,GAAOrO,cAAekC,WAAa,GAC5D,CACIhY,KAAM,SAAUkL,KAAMiZ,GAAO9L,QAAQoF,IAAc0G,GAAOrO,oBAGlEqM,QAASgC,GAAOrG,IAAIqG,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAAgB2I,GAAOrO,gBAC9GsM,MAAO+B,GAAOrG,IAAIqG,GAAOjO,SAASwH,EAAU,yBAC5C2xB,WAAYlrB,GAAOrG,IAAIJ,EAAU,sBAClC,CAAE1c,QAAS,cACNuc,SAAS,0BAA2B4G,GAAOxG,WAAW,CAC1D0E,UAAW3E,EAAU,cACrB4E,SAAU5E,EAAU,cACpB6E,QAAS4B,GAAOrG,IAAIqG,GAAOrO,eAC3B0M,QAAS2B,GAAOrG,IAAIqG,GAAOrO,gBAC5B,CAAE9U,QAAS,qBACNuc,SAAS,qBAAsB4G,GAAOxG,WAAW,CACrDza,EAAGwa,EAAU,gBACb1a,EAAG0a,EAAU,gBACb/V,EAAG+V,EAAU,gBACb+E,SAAU/E,EAAU,gBACpBgF,WAAYhF,EAAU,iBACvB,CAAE1c,QAAS,gBACNuc,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnD3d,KAAMmkB,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,cAAeC,UAAU,MAC9FoF,IAAKsD,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,mBAAoBb,GAAI,CAAC,MAAO,CAAEtU,KAAM,cACvH+iB,KAAMwB,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,UACzC3Q,SAAUyZ,GAAOrG,IAAIJ,EAAU,uBAC/B4xB,YAAanrB,GAAOrG,IAAIJ,EAAU,uBAClCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,uBAC/BhU,MAAOya,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChCkF,WAAYsB,GAAOrG,IAAIqG,GAAOrO,eAC9BgN,YAAaqB,GAAOrG,IAAIqG,GAAOrO,eAC/BiN,aAAcoB,GAAOrG,IAAIqG,GAAOrO,eAChCkN,YAAamB,GAAOrG,IAAIqG,GAAOrO,eAC/BmN,QAASkB,GAAOrG,IAAIqG,GAAOrO,kBAE/BoN,UAAWiB,GAAOrG,IAAIqG,GAAO9L,QAAQoF,EAAW,CAAEtC,KAAM,SAAWuC,EAAU,oBAC7EyF,OAAQgB,GAAOrG,IAAIJ,EAAU,qBAC7Boc,QAAS3V,GAAOrG,IAAIJ,EAAU,qBAC9B6xB,UAAWprB,GAAOrG,IAAIJ,EAAU,qBAChCqc,gBAAiB5V,GAAOrG,IAAIJ,EAAU,qBACtC8xB,eAAgBrrB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACzC8xB,mBAAoBtrB,GAAOrG,IAAIJ,EAAU,eACzCgyB,cAAevrB,GAAOrG,IAAIJ,EAAU,wBAExCsc,aAAc7V,GAAOrG,IAAIqG,GAAOxG,WAAW,CACvCsc,cAAe9V,GAAOrG,IAAIqG,GAAOrO,kBAErCsN,QAASe,GAAOrG,IAAIqG,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAAmBkC,EAAU,8BACrH,CAAE1c,QAAS,cACNuc,SAAS,0BAA2B4G,GAAOxG,WAAW,CAC1D0F,aAAcc,GAAOrG,IAAIqG,GAAOrO,eAChCwN,QAASa,GAAOrG,IAAIqG,GAAOrO,eAC3ByN,SAAUY,GAAOrG,IAAIqG,GAAOrO,eAC5B0N,cAAeW,GAAOrG,IAAIqG,GAAOrO,eACjC2N,aAAcU,GAAOrG,IAAIqG,GAAOrO,eAChC4N,eAAgBS,GAAOrG,IAAIqG,GAAOrO,eAClC6N,yBAA0BQ,GAAOrG,IAAIqG,GAAOrO,eAC5C8N,eAAgBO,GAAOrG,IAAIqG,GAAOrO,eAClC+N,cAAeM,GAAOrG,IAAIJ,EAAU,qBACpCoG,cAAeK,GAAOrG,IAAIJ,EAAU,sBACrC,CAAE1c,QAAS,qBACNuc,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnDoG,MAAOrG,EAAU,gBACjBsG,MAAOtG,EAAU,gBACjBuG,QAASE,GAAOrG,IAAIqG,GAAOrO,eAC3B+N,cAAeM,GAAOrG,IAAIJ,EAAU,qBACpC1d,KAAMmkB,GAAOrG,IAAIJ,EAAU,6BAC5B,CAAE1c,QAAS,uBClLlB4L,OAAOuC,eAAeqf,GAAS,aAAc,CAAErrB,OAAO,8BAC1B,EAC5B,MAAMghB,GAAS7R,wBACf,SAA2ByI,EAASO,SAC1BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,SAAU4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACpD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,wBACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXoV,4BAA6B,CACzBC,MAAOvK,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,eAAgBS,YAAY,KACjE+S,QAASxK,GAAOjO,SAASuH,KACzBvd,IAAKikB,GAAO9L,QAAQoF,IACpBC,EAAU,sBACVkR,OAAQlR,EAAU,kBAEtBmR,+BAAgC,CAC5BH,MAAOvK,GAAOrG,IAAIL,KAClBqR,YAAa3K,GAAOjO,SAASwH,EAAU,sBACvCkR,OAAQlR,EAAU,kBAEtBqR,qBAAsB,CAClBL,MAAOvK,GAAOrG,IAAIL,KAClBuR,WAAYtR,EAAU,qBACtBkR,OAAQnR,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC5D6J,WAAYlB,GAAOrG,IAAIqG,GAAO5L,cAC9B0W,YAAa9K,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAAS,CAAEzO,QAAS,IAAM,QAE9FmlB,qBAAsB,CAClBR,MAAOvK,GAAOrG,IAAIL,KAClBuR,WAAYtR,EAAU,qBACtBkR,OAAQnR,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC5D6J,WAAYlB,GAAOrG,IAAIqG,GAAO5L,cAC9B0W,YAAa9K,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAAS,CAAEzO,QAAS,IAAM,QAE9FolB,oBAAqB,CACjBT,MAAOvK,GAAOrG,IAAIL,KAClBuR,WAAYtR,EAAU,qBACtBkR,OAAQnR,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC5D6J,WAAYlB,GAAOrG,IAAIqG,GAAO5L,cAC9B0W,YAAa9K,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAAS,CAAEzO,QAAS,IAAM,QAE9FqlB,6BAA8B,CAC1BV,MAAOvK,GAAOrG,IAAIL,KAClBuR,WAAYtR,EAAU,qBACtBkR,OAAQnR,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC5D6J,WAAYlB,GAAOrG,IAAIqG,GAAO5L,cAC9B0W,YAAa9K,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAAS,CAAEzO,QAAS,IAAM,QAE9FslB,yBAA0B,CACtBX,MAAOvK,GAAOrG,IAAIL,KAClBuR,WAAYtR,EAAU,qBACtBkR,OAAQnR,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC5DkF,MAAOyD,GAAO5L,WAAW,CAAEC,SAAS,KAExC8W,qBAAsB,CAClBZ,MAAOvK,GAAOrG,IAAIL,KAClBtc,KAAMuc,EAAU,4BAChB6R,SAAU7R,EAAU,4BACpBkR,OAAQlR,EAAU,oBAG3B,CAAE1c,QAAS,SAAUiZ,sBAAsB,IAAS,CACnDlQ,QAAS,KAAO,CACZ/J,KAAM,mCAGNud,SAAS,oBAAqB4G,GAAOvO,IAAIuO,GAAOpM,WAAW,CAC/D,CACI/X,KAAM,SACNkL,KAAMwS,EAAU,4BAChB1F,UAAaxT,EAAE,IAEnB,CACIxE,KAAM,OACNkL,KAAMiZ,GAAOjO,SAASwH,EAAU,6BAChC1F,UAAa,CAACxT,MAElB,CACAuF,QAAS,KAAO,CACZyW,KAAM,yBAGNjD,SAAS,2BAA4B4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACtE6C,KAAM2D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WACrEiF,IAAK0D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBACpE,CACAzR,QAAS,KAAO,CACZyW,KAAM,yBAGNjD,SAAS,gBAAiB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC3D6C,KAAM/C,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UAC1DkF,MAAOyD,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,IAAS,CAAEzO,QAAS,IAAM,OACpF,CACAA,QAAS,KAAO,CACZyW,KAAM,kCCjGlB5T,OAAOuC,eAAeqgB,GAAS,aAAc,CAAErsB,OAAO,4BAC5B,EAC1B,MAAMghB,GAAS7R,sBACf,SAAyByI,EAASO,SACxBmC,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CmU,EAAWzvB,GAASmkB,GAAOvO,IAAIuO,GAAOxG,WAAW,CACnD9Z,QAASsgB,GAAOrG,IAAIqG,GAAOrO,eAC3B+F,OAAQsI,GAAOjO,SAASiO,GAAOpM,WAAW,CACtC,CACI/X,KAAM,SACNkL,KAAMuS,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMxb,EAAMyb,UAAU,KAC1EzD,UAAaxT,EAAE0P,IAEnB,CACIlU,KAAM,SACNkL,KAAMiZ,GAAOxG,WAAW,CACpBzJ,GAAIuJ,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAMxb,EAAMyb,UAAU,EAAME,cAAc,KAC5F+T,SAAUvL,GAAOrO,gBAErBkC,WAAc,CAAE9D,GAAI1P,SAG7B,CAAExD,QAAS,QAAU,CACpB+I,QAAS,KAAO,CACZ8R,OAAQ,SAGR0B,SAAS,YAAakS,EAAQ,YAC9BlS,SAAS,kBAAmBkS,EAAQ,kBACpClS,SAAS,YAAakS,EAAQ,YAC9BlS,SAAS,eAAgBkS,EAAQ,gBACjClS,SAAS,iBAAkBkS,EAAQ,iBACnClS,SAAS,WAAYkS,EAAQ,oBChCzC7iB,OAAOuC,eAAewgB,GAAS,aAAc,CAAExsB,OAAO,qCACnB,EACnC,MAAMghB,GAAS7R,+BACf,SAAkCyI,EAASO,SACjCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CsU,EAAmBprB,QAAYmM,SAAWnM,aAAa1B,MAAQ8sB,EAAgBprB,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAEqrB,YAAyB,IAAPlf,EAAgBA,EAAmB,iBAANnM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAEsN,cAChPyL,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOpM,WAAW,CAC5D,CACI/X,KAAM,SACNkL,KAAMwS,EAAU,yBAChB1F,UAAaxT,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAEqrB,KAAMD,EAAgBprB,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEqrB,KAAMD,EAAgBprB,KAEhK,CACIxE,KAAM,OACNkL,KAAMwS,EAAU,uBAChB1F,UAAa,CAACxT,IAElB,CACIxE,KAAM,SACNqX,SAAU,EACVnM,KAAMuS,IACNzF,OAAQ4X,GAEZ,CACI5vB,KAAM,SACNkL,KAAMiZ,GAAO5L,aACbP,iBACUhZ,EAAI8wB,WAAWF,EAAgBprB,WAC9BurB,SAAS/wB,GAAKA,EAAOwF,EAAI,EAAI,IAG5C,CACIxE,KAAM,UACNkL,KAAMiZ,GAAOrO,cACbkC,iBACU7V,EAAIytB,EAAgBprB,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZ8lB,KAAM,cAGRG,EAAe,CACjBvX,MAAO0L,GAAOrG,IAAIL,KAClByc,KAAM/V,GAAOrG,IAAIL,KACjBwS,KAAM9L,GAAOrG,IAAIqG,GAAOrO,eACxBoa,OAAQ/L,GAAOrG,IAAIqG,GAAOrO,eAC1Bqa,WAAYhM,GAAOrG,IAAIqG,GAAOrO,eAC9Bsa,cAAejM,GAAOrG,IAAIqG,GAAOrO,eACjCua,WAAYlM,GAAOrG,IAAIqG,GAAOrO,eAC9Bwa,UAAWnM,GAAOrG,IAAIL,KACtB8S,WAAYpM,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrC6S,OAAQ/S,EAAW,CAAEtC,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrGgJ,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,YACzBukB,GAAO9K,MAAO,CACXoX,YAAe,CACXttB,MAAOsa,KAEXiT,kBAAqB,CACjBvtB,MAAOsa,KAEXkT,UAAa,CACTxtB,MAAOsa,KAEXmT,SAAY,CACRztB,MAAOsa,KAEXoT,YAAe,CACX1tB,MAAOsa,EAAW,CAAEpC,UAAW,UAAWlK,OAAQ,CAAE2f,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACf7tB,MAAOsa,EAAW,CAAEpC,UAAW,UAAWlK,OAAQ,CAAE2f,cAAc,EAAMC,cAAc,UAIlGE,WAAY9M,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrC6S,OAAQ/S,EAAW,CAAEtC,KAAM,CAAC,YAAa,YAAa,kBACrDgJ,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,YACzBukB,GAAO9K,MAAO,CACX6X,UAAa,CACT/tB,MAAOghB,GAAOrG,IAAIJ,EAAU,mBAC5Byc,SAAUhW,GAAOrG,IAAIJ,EAAU,oBAEnCyT,UAAa,CACThuB,MAAOghB,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAEigB,OAAQ,0BACnE+I,SAAUhW,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnCzJ,GAAIuJ,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,UACxDkF,MAAOyD,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KAC/CiI,IAAK0D,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,iBAAkBb,GAAI,CAAC,MAAO,CAAEtU,KAAM,gBAG7HyxB,YAAe,CACXluB,MAAOghB,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC9W,KAAMsd,GAAOrG,IAAIL,KACjBzd,KAAMmkB,GAAOrG,IAAIL,KACjBvJ,GAAIiQ,GAAOrG,IAAIL,QAEnB0c,SAAUhW,GAAOrG,IAAIqG,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC9C9W,KAAMsd,GAAOrG,IAAIJ,EAAU,mBAC3B1d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAC1DtH,GAAIuJ,EAAW,CAAEpC,UAAW,WAC5B,CACAtR,QAAS,KAAO,CACZ/J,KAAM,gBACNkU,GAAI,iDAMxB4X,MAAO3H,GAAOrG,IAAIJ,EAAU,2BAExBH,SAAS,wBAAyB4G,GAAOvO,IAAIuO,GAAOpM,WAAW,CACnE,CACI/X,KAAM,OACN+I,SAAyB,iBAANvE,EACnBwT,WAAc,CAAE6X,KAAM,KACtBxY,YACAnM,KAAMiZ,GAAOxG,WAAWhI,GACpBka,KAAMpS,KACHuS,KAGX,CACIhwB,KAAM,cACN+I,cAAoE,kBAA1B,EAASvE,EAAE8sB,WACrDtZ,WAAc,CAAEsZ,UAAW,KAC3BpmB,KAAMiZ,GAAOxG,WAAWhI,GACpB2b,UAAW7T,IACX8T,KAAMpN,GAAOrG,IAAIJ,EAAU,yBACxBsS,KAGX,CACIhwB,KAAM,QACN+I,cAAgE,kBAAtB,EAASvE,EAAEgtB,OACrDxZ,WAAc,CAAEwZ,MAAO,KACvBtmB,KAAMiZ,GAAOxG,WAAWhI,GACpB6b,MAAOrN,GAAOxG,WAAW,CACrB9W,KAAM4W,EAAW,CAAEpC,UAAW,SAAUlK,OAAQ,CAAE8c,OAAQ,SAAUjuB,KAAM,WAAYyxB,eAAe,KACrGC,UAAWjU,EAAW,CAAEpC,UAAW,cACnClY,MAAOghB,GAAOrG,IAAIL,QAEnBuS,KAGX,CACIhwB,KAAM,WACN+I,cAAmE,kBAAzB,EAASvE,EAAEmtB,UACrD3Z,WAAc,CAAE2Z,SAAU,KAC1BzmB,KAAMiZ,GAAOxG,WAAWhI,GACpBgc,SAAUlU,EAAW,CAAEpC,UAAW,SAAUlK,OAAQ,CAAE8c,OAAQ,WAAYjuB,KAAM,cAChF2vC,UAAWxrB,GAAOrG,IAAIJ,EAAU,oBAC7BsS,KAGX,CACIhwB,KAAM,UACN+I,cAAkE,kBAAxB,EAASvE,EAAEotB,SACrD5Z,WAAc,CAAE4Z,QAAS,KACzB1mB,KAAMiZ,GAAOxG,WAAWhI,GACpBic,QAASnU,EAAW,CAAEtC,KAAM,UAAWS,YAAY,KAChDoU,KAGX,CACIhwB,KAAM,MACN+I,cAA8D,kBAApB,EAASvE,EAAEqc,KACrD7I,WAAc,CAAE6I,IAAK,KACrB3V,KAAMiZ,GAAOxG,WAAWhI,GACpBkL,IAAKpD,EAAW,CAAEpC,UAAW,aAC7BkD,MAAO4F,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,SAAUlK,OAAQ,CAAEiQ,UAAW,EAAGzI,WAAW,MACvFiG,OAAQuF,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,SAAUlK,OAAQ,CAAE8c,OAAQ,WAAYjuB,KAAM,eACzF6xB,QAAS1N,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,eACxEsW,UAAW3N,GAAOrG,IAAIqG,GAAOrO,eAC7B65B,UAAWxrB,GAAOrG,IAAIJ,EAAU,oBAC7BsS,MAGZ,CAAEhvB,QAAS,wBAAyBmd,cAAe,0BAA4B,CAC9EpU,QAAS,KAAO,CACZ8lB,KAAM,UAGNtS,SAAS,sBAAuB4G,GAAOvO,IAAIuO,GAAOjO,SAASwH,EAAU,mBAAoB,CAC7F3T,QAAS,IAAM,CAAC,CACR8lB,KAAM,yBC7LtBjjB,OAAOuC,eAAeirB,GAAS,aAAc,CAAEj3B,OAAO,6BAC3B,EAC3B,MAAMghB,GAAS7R,uBACf,SAA0ByI,EAASO,SACzBmC,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,QAAS4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACnD0c,gBAAiB5c,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,0CACrE8d,YAAanV,GAAO5L,aACpBgiB,SAAUpW,GAAO5L,aACjBiiB,cAAe/c,EAAW,CAAEtC,KAAM,CAAC,OAAQ,OAAQ,UACnDsf,qBAAsBtW,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,CAAC,OAAQ,aAC7DpG,SAAU0I,EAAW,CAAEtC,KAAM,mBAC7Buf,sBAAuBvW,GAAOrG,IAAIqG,GAAOrO,eACzC6kB,2BAA4BxW,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KACxE+Z,QAASe,GAAOxG,WAAW,CACvBid,UAAWzW,GAAO5L,WAAW,CAAEE,OAAO,IACtCoiB,UAAW1W,GAAO5L,WAAW,CAAEE,OAAO,IACtCqiB,YAAa3W,GAAO5L,WAAW,CAAEE,OAAO,IACxCsiB,gBAAiB5W,GAAO5L,WAAW,CAAEE,OAAO,IAC5CuiB,YAAa7W,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEE,OAAO,KACnDwiB,cAAe9W,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEE,OAAO,KACrDyiB,qBAAsB/W,GAAOrG,IAAIL,EAAW,CAAEtC,KAAM,CAAC,OAAQ,cAAe,YAC5EggB,cAAehX,GAAOrG,IAAIL,KAC1B2d,WAAYjX,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrC0d,MAAO5d,IACP6d,WAAYnX,GAAO5L,WAAW,CAAEC,SAAS,IACzC+iB,oBAAqBpX,GAAO5L,WAAW,CAAEC,SAAS,IAClDhI,OAAQ2T,GAAO5L,gBAEnBijB,gBAAiBrX,GAAOrG,IAAIqG,GAAOxG,WAAW,CAC1C0d,MAAO5d,IACPge,YAAatX,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,OAElDqyB,MAAOvX,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC0d,MAAO5d,IACPke,UAAWxX,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IACnDwlB,UAAWzX,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IACnDylB,sBAAuB1X,GAAOrO,iBAElCgmB,SAAU3X,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnChL,QAASwR,GAAOxG,WAAW,CACvB3d,KAAMyd,MAEVsO,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,SAGtD2yB,SAAU7X,GAAO9L,QAAQoF,EAAW,CAAEtC,KAAM,CACpC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,UACEgJ,GAAOvO,IAAIuO,GAAOjO,SAASiO,GAAOxG,WAAW,CACnD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAC1DwP,OAAQ7G,GAAO5L,WAAW,CAAEC,SAAS,IACrCyjB,SAAU9X,GAAO5L,WAAW,CAAEC,SAAS,IACvC0jB,SAAU/X,GAAO5L,WAAW,CAAEC,SAAS,OACtC,CACDzD,SAAU,IAAM,OAChBhL,QAAS,IAAM,CAAC,CACR/J,KAAM,gBACNgrB,OAAQ,OAGpBmR,YAAahY,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAAoB2I,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC7Hye,cAAejY,GAAO5L,aACtB8jB,OAAQlY,GAAO5L,cAChB,CAAExD,SAAU,aAAe,CAC1BhL,QAAS,KAAO,CACZqyB,cAAe,IACfC,OAAQ,OAGhBC,QAASnY,GAAO9L,QAAQoF,EAAW,CAAEtC,KAAM,CAAC,MAAO,YAAcgJ,GAAOvO,IAAIuO,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kCAAqC,CACjLzR,QAAS,IAAM,CAAC,qBAEpBivB,SAAU7U,GAAOjO,SAASiO,GAAOvO,IAAIuO,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mCAAsC,CAAEzG,SAAU,IAAM,cAAgB,CAAEuB,UAAW,MAC/L,CAAEtV,QAAS,UAAY,CACtB+I,QAAS,KAAO,CACZswB,gBAAiB,kBACjBf,YAAa,GACbiB,SAAU,GACVC,cAAe,OACfzlB,SAAU,SACVqO,QAAS,CACLwX,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBC3FjCnuB,OAAOuC,eAAeotB,GAAS,aAAc,CAAEp5B,OAAO,8BAC1B,EAC5B,MAAMghB,GAAS7R,GACT8R,GAAW7R,wBACjB,SAA2BwI,EAASO,SAC1BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/Cs0B,EAAe,CACjBC,kBAAmBzrB,GAAS4pB,gBAC5B8B,MAAO3rB,GAAOxG,WAAW,CACrBoyB,gBAAiB3rB,GAAS4pB,gBAC1BgC,UAAW5rB,GAAS4pB,gBACpBiC,iBAAkB9rB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAC1D85B,yBAA0B9rB,GAAS4pB,gBACnCmC,+BAAgChsB,GAAO5L,aACvC63B,8BAA+BjsB,GAAO5L,gBAGxC83B,EAAa,CACfC,6BAA8BlsB,GAAS4pB,gBACvCuC,2BAA4BnsB,GAAS4pB,gBACrCwC,YAAapsB,GAAS4pB,cAAc,CAAE53B,OAAS/M,IAAK,OAEhDkU,SAAS,oBAAqB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC/D3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,qBAC1DrF,OAAQgO,GAAOxG,WAAW,CACtBoO,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAC9CrG,EAAG0a,EAAU,mBACb+yB,OAAQrsB,GAAS4pB,gBACjB0C,WAAYhzB,EAAU,mBACtBizB,eAAgBxsB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACzCizB,WAAYzsB,GAAOrG,IAAIqG,GAAOrO,eAC9B+6B,UAAW1sB,GAAOrG,IAAIJ,EAAU,gBAChCozB,YAAa3sB,GAAOrG,IAAIJ,EAAU,gBAClCqzB,WAAY5sB,GAAOrG,IAAIJ,EAAU,gBACjCszB,cAAe7sB,GAAOrG,IAAIJ,EAAU,oBAEvCyG,GAAO/K,QAAS,CAAC,MAAO,CAAExZ,KAAM,UAChCukB,GAAO9K,MAAO,CACX43B,mBAAoBrB,EACpBsB,iBAAkBb,EAClBc,wBAAyBd,MAGlC,CAAErvC,QAAS,WAAa,CACvB+I,QAAS,KAAO,CACZ/J,KAAM,iBACNmW,OAAQ,CACJ4V,YAAa,oBChD7Bnf,OAAOuC,eAAeqtB,GAAS,aAAc,CAAEr5B,OAAO,iCACvB,EAC/B,MAAMghB,GAAS7R,GACT8R,GAAW7R,2BACjB,SAA8BwI,EAASO,SAC7BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CwhB,EAAc,CAChBpc,MAAO0D,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,SAEvCkU,SAAS,uBAAwB4G,GAAOxG,WAAW,CACvD3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,wBAC1DrF,OAAQgO,GAAOxG,WAAW,EACrBwG,GAAO/K,QAAS,CAAC,MAAO,CAAExZ,KAAM,UAChCukB,GAAO9K,MAAO,CACXkhC,yBAA0B,CACtB77B,UAAWhB,EAAU,6BAEzB88B,kCAAmC,CAC/Br1C,MAAOuY,EAAU,gBAErBsf,yBAA0B,CACtBC,KAAMxf,EAAW,CAAEtC,KAAM,qBAE7Bi2B,yBAA0B,CACtBC,QAAS5zB,EAAW,CAAEtC,KAAM,CAAC,QAAS,aACtCm2B,8BAA+BntB,GAAO5L,WAAW,CAAEC,SAAS,KAEhE0kB,mBAAoB,CAChBxd,OAAQyE,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAEpD+mB,kBAAmBL,EACnBM,wBAAyB,CACrB1c,MAAOyD,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAC/CinB,YAAalZ,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IACrDknB,aAAcnZ,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAEnDk0B,6BAA8BT,EAC9BU,wBAAyB,CACrBC,YAAatZ,GAAO5L,aACpBmlB,YAAavZ,GAAO5L,WAAW,CAAEC,SAAS,IAC1CmlB,YAAaxZ,GAAO5L,WAAW,CAAEC,SAAS,KAE9ColB,+BAAgC,CAC5BC,qBAAsB1Z,GAAO5L,WAAW,CAAEC,SAAS,IACnDslB,aAAc3Z,GAAO5L,aACrBwlB,aAAc5Z,GAAOrG,IAAIqG,GAAO5L,eAEpCylB,sBAAuB,CACnBC,MAAOvgB,EAAU,wBACjBwgB,MAAOxgB,EAAU,yBAErB+8B,6BAA8B,CAC1BC,oBAAqBj9B,EAAW,CAAEtC,KAAM,CAAC,KAAM,UAC/Cw/B,UAAWx2B,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC3DuxC,iBAAkBl9B,EAAU,6BAEhC6zB,sBAAuB,CACnB7R,UAAWjiB,EAAW,CAAEtC,KAAM,oBAElCojB,sBAAuB,CACnB7e,OAAQyE,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAEpDooB,kBAAmB,CACfrJ,OAAQzX,EAAU,oBAEtBm9B,uCAAwC,CACpCnb,UAAWjiB,EAAW,CAAEtC,KAAM,mBAC9BsyB,cAAetpB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACvDy1B,cAAe9pB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,MAE3Di5B,kCAAmC,CAC/B5L,gBAAiB1hB,GAAO5L,WAAW,CAAEC,SAAS,OAGvD,CAAExX,QAAS,YAAa+T,SAAU,eACtC,CAAE/T,QAAS,YAAa+T,SAAU,gCC5EzCnI,OAAOuC,eAAeyvB,GAAS,aAAc,CAAEz7B,OAAO,mDACE,EACxD,MAAMghB,GAAS7R,+BACf,SAAkCyI,EAASO,SACjCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,iBAChC6I,GAAOpM,WAAW,CACnC,CACI/X,KAAM,SACNkL,KAAMuS,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,8BAC1DxD,cAEJ,CACIhY,KAAM,SACNkL,KAAMwS,EAAU,kBAChB1F,WAAc,CACV6mB,WAAY,CAAC,CACLC,eAAkB,yBAK9BvhB,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5DkhB,WAAY1a,GAAOjO,SAASwH,EAAU,eACvC,CAAE1c,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZ80B,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpC1hB,SAAS,YAAa4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACvDmhB,eAAgBrhB,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mCACnE2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,oBACzBukB,GAAO9K,MAAO,CACX8lB,sBAAuB,CACnBC,UAAWjb,GAAO5L,cAEtB8mB,yBAA0B,CACtBC,OAAQnb,GAAOjO,SAASwH,EAAU,iBAEtC6hB,sBAAuB,CACnBC,UAAWrb,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAEhDo2B,oBAAqB,CACjBC,UAAWjiB,EAAW,CAAEtC,KAAM,mBAC9B3K,OAAQ2T,GAAO5L,WAAW,CAAEC,SAAS,KAEzCk5B,6BAA8B,CAC1BvuC,MAAOsa,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBAE/DmkB,iBAAkB,CACdZ,MAAO5a,GAAOjO,SAASwH,EAAU,sBAG1C,CAAE3I,SAAU,WAAY/T,QAAS,cAAgB,CAChD+I,QAAS,KAAO,CACZ+0B,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5B1hB,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5DiiB,mBAAoBzb,GAAOrG,IAAIJ,EAAU,kBACzCshB,mBAAoBthB,EAAU,aAC9BwhB,gBAAiBxhB,EAAU,aAC3BmiB,aAAcniB,EAAU,eACxBoiB,WAAY3b,GAAOrG,IAAIL,EAAW,CAAEpC,UAAW,MAAOlK,OAAQ,CAAE8K,SAAU,CAAElH,SAAU,wBACvF,CAAEA,SAAU,YAAa/T,QAAS,mBAAqB,CACtD+I,QAAS,KAAO,CACZi1B,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,SAAU7b,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAAKmP,SAAS,KACpEynB,SAAU9b,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAAKmP,SAAS,KACpE0nB,WAAY/b,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KACxD82B,WAAYhc,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,QAEpDkU,SAAS,gBAAiB4G,GAAOxG,WAAW,CAChDshB,eAAgBxhB,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,oBACnE2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,oBACzBukB,GAAO9K,MAAO,CACX+mB,oCAAqCzqB,GACjC0qB,KAAM5iB,EAAW,CAAEtC,KAAM,CAAC,IAAK,IAAK,QACjC4kB,GAEPO,uBAAwBP,IAE7B,CAAE/+B,QAAS,gBAAiBiZ,sBAAsB,OAC7CsD,SAAS,YAAa4G,GAAOxG,WAAW,CAC5CshB,eAAgBxhB,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACnE2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,oBACzBukB,GAAO9K,MAAO,CACXknB,wBAAyB,CACrBhiB,MAAOd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,YAE/DglB,6BAA8B,CAC1BC,YAAa/iB,EAAU,gBAE3BgjB,+BAAgC,CAC5BniB,MAAOd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC3DuQ,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElDs3B,oCAAqC,CACjCF,YAAa/iB,EAAU,eACvBqO,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElDu3B,sBAAuB,CACnBngB,IAAKhD,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mBAGlE,CAAExa,QAAS,YAAaiZ,sBAAsB,MCnIrDrN,OAAOuC,eAAe0xB,GAAS,aAAc,CAAE19B,OAAO,+BACzB,EAC7B,MAAMghB,GAAS7R,GACT8R,GAAW7R,GAGXo4B,GAAkBl4B,yBACxB,SAA4BsI,EAASO,SAC3BoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/C6mB,EAAUhe,GAAOpM,WAAW,CAC9B,CACI/X,KAAM,SACNkL,KAAMuS,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mCAE9D,CACIxb,KAAM,SACNkL,KAAMwS,EAAU,wBAErB,CAAES,cAAe,YACd2iB,EAAoB,CACtBO,MAAOld,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAC1D0kC,UAAW32B,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAC9D2kC,SAAU52B,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAC7D4kC,YAAa72B,GAAOrO,cACpBmlC,WAAY92B,GAAOjO,SAASwH,EAAU,gBACtCw9B,cAAe/2B,GAAOjO,SAASwH,EAAU,gBACzCyD,QAASghB,GAEPT,EAAa,CACfv8B,MAAOuY,EAAU,eACjBikB,OAAQvd,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,IAC5Cu4B,YAAazd,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,IAC7Dw4B,QAAS1d,GAAOjO,SAASwH,EAAU,iBAEjCokB,EAAqB,CACvBC,aAAcrkB,EAAU,wBACxBskB,cAAetkB,EAAU,wBACzBukB,eAAgB9d,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,MAEtDm5B,EAAmBxtB,GAAOxG,WAAW,CACvCtS,OAAQqS,EAAU,aAClBvY,MAAOuY,EAAU,iBAEfwkB,EAAY,CACdxM,KAAMvR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KACtDuoC,+BAAgCztB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACjEw4B,QAAS1d,GAAOjO,SAASy7B,IAEvBE,EAAwB,CAC1BR,QAAS5zB,EAAW,CAAEtC,KAAM,CAAC,QAAS,aACtCmf,MAAOlW,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAC3CyoC,eAAgB3tB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAChE0oC,0BAA2B5tB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAC5D2oC,yBAA0B7tB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAC3D4oC,kBAAmB9tB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACpD6oC,UAAW9tB,GAASgqB,cACpB+D,YAAa10B,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACjE42B,aAAc10B,EAAU,wBACxB20B,mBAAoBlQ,KAEhB5kB,SAAS,qBAAsB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAChE3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,sBAC1DrF,OAAQgO,GAAOxG,WAAW,EACrBwG,GAAO/K,QAAS,CAAC,MAAO,CAAExZ,KAAM,UAChCukB,GAAO9K,MAAO,CACX+oB,mBAAoB,CAChBrW,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElDg5B,2BAA4B,CACxBC,MAAOle,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,IAC3C8rB,OAAQ/Q,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAEhD8xC,yBAA0B,CACtB1F,UAAWh4B,EAAW,CAAEtC,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvEu6B,YAAavxB,GAAOrO,cACpBslC,eAAgBj3B,GAAOrO,cACvBmjB,OAAQ9U,GAAOjO,SAASiO,GAAOxG,WAAW,CACtCwX,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAChDjR,MAAOuY,EAAU,4BAGzB6kB,uBAAwB,CACpBjB,eAAgB5jB,EAAU,yBAE9BsgB,sBAAuB,CACnBwE,UAAW9kB,EAAU,wBACrByD,QAASghB,GAEbmQ,6BAA8B,CAC1B9P,UAAW9kB,EAAU,wBACrByD,QAASghB,GAEbM,0BAA2B,CACvBtI,SAAUzc,EAAU,eACpBglB,IAAKhlB,EAAU,eACfgY,KAAMtR,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,KAC1Cs5B,SAAUve,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAElDu5B,iBAAkBlB,EAClB6Q,8BAA+B,CAC3BjB,8BAA+BntB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAC/E8rB,OAAQ/Q,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAC5Cs4B,OAAQvd,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAC5CmpC,sCAAuCruB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KACvFopC,iBAAkBtuB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAClEqpC,gCAAiCtuB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MACrEspC,QAASvuB,GAAS4pB,cAAc,CAAE53B,IAAK,EAAG/M,IAAK,IAC/CupC,QAASxuB,GAAS4pB,cAAc,CAAE53B,IAAK,EAAG/M,IAAK,IAC/CwpC,uDAAwD1uB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACzFypC,4DAA6D3uB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC7G0pC,+CAAgD5uB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAEpGy5B,wBAAyB,CACrB1xB,MAAO+S,GAAOrO,cACditB,KAAM5e,GAAOrG,IAAIJ,EAAU,eAE/BslB,sBAAuB,CACnBC,qBAAsB9e,GAAOrG,IAAIqG,GAAOrO,eACxCotB,oBAAqB/e,GAAOrG,IAAIJ,EAAU,cAC1CylB,OAAQhf,GAAOjO,SAASiO,GAAOxG,WAAW,CACtCylB,QAASjf,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACjD6qB,QAASlf,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACjDmpB,OAAQxd,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KAChD2c,OAAQhR,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KAChD8qB,QAASnf,GAAOrG,IAAIqG,GAAOrO,mBAGnCytB,uBAAwB,CACpBp+B,MAAOuY,EAAU,eACjByX,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAE5Dm6B,mBAAoB1C,EACpB2C,wBAAyB,CACrBt+B,MAAOuY,EAAU,gBAErBs1B,mBAAoB,CAChBC,0BAA2B9uB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,IAC3E6pC,kBAAmB/uB,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACvF23B,mBAAoBhvB,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,iBACxF43B,kBAAmBzI,GAAgBd,WACnCwJ,mBAAoB1I,GAAgBd,YAExCyJ,kBAAmB,CACfhU,OAAQnb,GAAOxG,WAAW,CACtB41B,iBAAkB71B,EAAU,wBAC5B81B,qBAAsB91B,EAAU,wBAChC+1B,+BAAgC/1B,EAAU,wBAC1Cg2B,sBAAuBh2B,EAAU,wBACjCi2B,qBAAsBj2B,EAAU,wBAChCk2B,iBAAkBzvB,GAAOjO,SAASwH,EAAU,gBAC5Cm2B,eAAgBp2B,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACpEs4B,eAAgBr2B,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kBAExEyd,OAAQ9U,GAAOxG,WAAW,CACtBo2B,QAAS5vB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,IAAM/M,IAAK,MACxD2qC,YAAa7vB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,IAAM/M,IAAK,MAC5D4qC,aAAc9vB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,IAAM/M,IAAK,MAC7D6qC,YAAa/vB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,IAAM/M,IAAK,QAEhE8qC,MAAOhwB,GAAOxG,WAAW,CACrBy2B,sBAAuBjwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KACnEgrC,gBAAiBlwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAC7DirC,mBAAoBnwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,GAAImP,SAAS,OAEjF+7B,iBAAkBpwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAC9DmrC,gCAAiCrwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAC7EorC,4BAA6BtwB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KACzEqrC,oCAAqCvwB,GAAOrG,IAAIqG,GAAOrO,eACvD6+B,oBAAqBxwB,GAAOrG,IAAIsG,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MACpEurC,oBAAqBzwB,GAAOrG,IAAIsG,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MACpEwrC,aAAc1wB,GAAOrG,IAAIsG,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAC7DyrC,eAAgB3wB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACxDu8B,eAAgB5wB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,KACxDw8B,yBAA0B7wB,GAAO5L,WAAW,CAAEC,SAAS,KAE3Dy8B,wBAAyB,CACrBC,aAAc/wB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,GAAImP,SAAS,KACvE28B,oBAAqBhxB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KACjE+rC,mBAAoBjxB,GAAOrG,IAAIqG,GAAOrO,eACtCu/B,qBAAsBlxB,GAAOrG,IAAIqG,GAAOrO,eACxCw/B,kBAAmBnxB,GAAOrG,IAAIqG,GAAOrO,eACrCy/B,iBAAkBpxB,GAAOjO,SAASwH,EAAU,iBAEhDgmB,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAWlmB,EAAU,eACrBmmB,YAAanmB,EAAU,eACvBomB,WAAYpmB,EAAU,eACtBqmB,iBAAkBrmB,EAAU,eAC5BsmB,QAAS7f,GAAOrG,IAAIqG,GAAOrO,gBAE/BmuB,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBh/B,MAAOuY,EAAU,gBAErB0mB,iBAAkB,CACdj/B,MAAOuY,EAAU,gBAErBo4B,4BAA6B,CACzBxE,8BAA+BntB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAC1F0sC,cAAe3xB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,KACnD2sC,aAAc5xB,GAAS4pB,cAAc,CAAE53B,IAAK,EAAG/M,IAAK,KACpD4sC,uCAAwC9xB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACzE6sC,qBAAsB9xB,GAAS4pB,cAAc,CAAE53B,IAAK,GAAK/M,IAAK,KAC9D8sC,qBAAsB/xB,GAAS4pB,cAAc,CAAE53B,IAAK,GAAK/M,IAAK,KAC9D+sC,WAAYhyB,GAAS4pB,cAAc,CAAE53B,IAAK,EAAG/M,IAAK,IAClDgtC,oBAAqBlyB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACrEitC,uBAAwBnyB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAE7Dg7B,qCAAsC,CAClC/C,eAAgB5jB,EAAU,yBAE9B4mB,qCAAsC,CAClCn/B,MAAOuY,EAAU,eACjBrS,OAAQqS,EAAU,eAClBikB,OAAQvd,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAEhDk7B,+BAAgCzD,EAChC2D,gBAAiBvC,EACjBwC,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAezC,EACf0C,aAAc1C,GAElB2C,4BAA6B,CACzB9L,SAAU7U,GAAOjO,SAASiO,GAAOxG,WAAW,CACxC+B,OAAQyE,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACzC8X,QAASghB,KAEbp4B,QAASo4B,GAEboU,iCAAkC,CAC9B1U,QAAS1d,GAAOjO,SAASy7B,IAE7B6E,wBAAyB,CACrBC,iCAAkCtyB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAClFqtC,YAAavyB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC7DstC,wBAAyBxyB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACzEutC,uBAAwBzyB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OACxEwtC,oBAAqB1yB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KACrEytC,4BAA6B3yB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC7E0tC,gCAAiC5yB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACjF2tC,gCAAiC7yB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KACjF4tC,iBAAkBx5B,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBACtE07B,oBAAqBx5B,EAAU,wBAC/By5B,4BAA6Bz5B,EAAU,wBACvCyD,QAASghB,GAEbiV,0BAA2BlV,EAC3B6C,uBAAwB,CACpBrkB,MAAO0D,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,OAE/C27B,qBAAsB,CAClBjZ,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElD47B,yBAA0B,CACtBC,SAAUxnB,EAAU,yBAExB4nB,mCAAoC,CAChCtM,SAAU7U,GAAOjO,SAASisB,IAE9BkV,4BAA6B,CACzBC,eAAgBnzB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAC3EkuC,0BAA2BpzB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACtFmuC,uBAAwBrzB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACnFouC,2BAA4BtzB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,MAE5Ek8B,2BAA4B,CACxBpgC,MAAOuY,EAAU,eACjB8nB,WAAYrhB,GAAO5L,WAAW,CAAEC,SAAS,IACzCitB,WAAYthB,GAAO5L,WAAW,CAAEC,SAAS,IACzCktB,qBAAsBvhB,GAAOrO,cAC7B6vB,aAAcxhB,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAEtFoqB,iBAAkB,CACdE,aAAc3hB,GAAOrG,IAAIqG,GAAOrO,eAChC4hC,WAAYvzB,GAAOrG,IAAIqG,GAAOrO,eAC9BiwB,aAAcroB,EAAU,gBACxBi6B,cAAej6B,EAAU,wBACzBsoB,eAAgBtoB,EAAU,wBAC1Bm6B,iBAAkBn6B,EAAU,wBAC5BwoB,aAAc/hB,GAAOxG,WAAW,CAC5B3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gCAC1D2qB,YAAahiB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC7D+8B,cAAejiB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC/Dg9B,cAAeliB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAC9D8a,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXy+B,iCAAkC,CAC9BC,YAAa3zB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,KACjD2uC,sBAAuB7zB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,QAGnF,CAAEpV,QAAS,iBACdslC,eAAgBniB,GAAOxG,WAAW,CAC9B3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,kCAC1DmmB,OAAQvd,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,KAC5CmH,OAAQ4T,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAC3C8a,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXktB,gCAAiC,CAC7BpR,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAE5Dm9B,gCAAiC,CAC7BrR,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAE5Do9B,iCAAkC,CAC9BtR,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAE5Dq9B,kCAAmC,CAC/BvR,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAE5Ds9B,qCAAsC,CAClCC,aAAcxiB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAEtDw9B,gCAAiC,CAC7B1R,OAAQ/Q,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MAEhD4uC,yCAA0C,CACtCC,eAAgB9zB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,MACpD8uC,wBAAyBh0B,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAE7Ey9B,kCAAmC,CAC/BC,aAAc3iB,GAASgqB,YAAY,CAAEh4B,IAAK,EAAG/M,IAAK,QAG3D,CAAErI,QAAS,iBAAkBiZ,sBAAsB,IACtD+sB,WAAY7iB,GAAOjO,SAASiO,GAAOxG,WAAW,CAC1C3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mCACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACX4tB,yBAA0B,CACtBC,SAAUxpB,EAAU,yBAExBypB,oBAAqB,CACjBpb,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElD+9B,kBAAmB,CACfrb,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,OAGvD,CAAErI,QAAS,qBAElBo3C,6BAA8B,CAC1BC,mBAAoBl0B,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACpEivC,8BAA+Bn0B,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC/EkvC,yCAA0Cp0B,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAE/EmvC,6BAA8B3G,EAC9B4G,yCAA0C5G,IAE/C,CAAE7wC,QAAS,aACf,CAAEA,QAAS,YAAc,CACxB+I,QAAS,KAAO,CACZ/J,KAAM,sBACNmW,OAAQ,CACJqsB,UAAW,CACPxiC,KAAM,kBACNmW,OAAQ,CACJuK,MAAO,IAGfS,QAAS,CACLnhB,KAAM,iBACNmW,OAAQ,CACJ0vB,gBAAiB,EACjBC,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3E,OAAQ,EACRnxB,OAAQ,EACR2kB,OAAQ,aAOxB5X,SAAS,eAAgB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC1D3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gCAC1D6rB,mBAAoBljB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,OAC/D8a,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXiuB,oCAAqC,CACjCpa,MAAO/I,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAClEk+B,WAAYpjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACvEm+B,WAAYrjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAE3Eo+B,sCAAuC,CACnCva,MAAO/I,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MAClEq+B,YAAavjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACxEk+B,WAAYpjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACvEs+B,YAAaxjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,MACxEm+B,WAAYrjB,GAAOrG,IAAIqG,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,SAGhF,CAAE4Q,sBAAsB,IAAS,CAChClQ,QAAS,KAAO,CACZ/J,KAAM,+CAGRq7C,EAAgB,CAClB3tB,KAAMvJ,GAAO5L,WAAW,CAAEC,SAAS,IACnCoc,MAAOlX,EAAU,oBACjBgb,MAAOvU,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEnC,IAAKsC,OAAO4iC,YAAc,CAAEvxC,QAAS,IAAM,OAE7EwT,SAAS,uBAAwB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAClE3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,yCACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACXkiC,gCAAiC1lC,OAC1BwlC,GAD0B,CAE7BG,QAASp3B,GAASq3B,eAAe,CAAEjjC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,KAC/DqyC,WAAYh+B,EAAU,oBACtBi+B,WAAYx3B,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEnC,IAAKsC,OAAO4iC,YAAc,CAAEvxC,QAAS,IAAM,IACtF6xC,OAAQz3B,GAAOjO,SAASwH,EAAU,kBAEtCm+B,qCAAsChmC,OAC/BwlC,GAD+B,CAElCS,UAAW33B,GAAO5L,WAAW,CAAEnC,OAAS/M,IAAK,IAC7C0yC,YAAa53B,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IAC9C2yC,cAAet+B,EAAU,eACzBu+B,WAAY93B,GAAOjO,SAASwH,EAAU,gBACtCw+B,YAAa/3B,GAAOjO,SAASwH,EAAU,kBAE3Cy+B,2BAA4BtmC,OACrBwlC,GADqB,CAExBO,OAAQz3B,GAAOjO,SAASwH,EAAU,kBAEtCg7B,0CAA2C,CACvCC,SAAUl7B,IACV5B,OAAQuI,GAASgqB,cACjBniB,OAAQvO,EAAU,yBAEtBkqB,mCAAoC,CAChCziC,MAAOuY,EAAU,gBAErBmqB,kCAAmC,CAC/B1iC,MAAOuY,EAAU,gBAErBoqB,oCAAqC,CACjCjzB,QAASsP,GAAOjO,SAASiO,GAAOvO,IAAIuO,GAAOxG,WAAW,CAClDqN,OAAQ7G,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAChD5P,KAAMkX,EAAU,iBAChB,CACA3T,QAAS,KAAO,CACZvD,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrC+I,QAAS,KAAO,CACZ/J,KAAM,yCAGNud,SAAS,2BAA4B4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACtE3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,2BACzD2I,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,UACzBukB,GAAO9K,MAAO,CACX+iC,mBAAoB,CAChBC,WAAYl4B,GAAOjO,SAASwH,EAAU,8BAE1C4+B,mBAAoB,CAChBD,WAAYl4B,GAAOjO,SAASwH,EAAU,8BAE1C6+B,4BAA6B,CACzB/rC,OAAQkN,EAAU,aAClB4hB,OAAQnb,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAEhFghC,4BAA6B,CACzBhsC,OAAQkN,EAAU,aAClB++B,OAAQt4B,GAAOjO,SAASuH,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,aAEhFkhC,gBAAiB,CACbh+B,UAAWhB,EAAU,+BAG9B,CAAE1c,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZ/J,KAAM,4CCvelB4M,OAAOuC,eAAe+4B,GAAS,aAAc,CAAE/kC,OAAO,qCACnB,EACnC,MAAMghB,GAAS7R,GACT8R,GAAW7R,+BACjB,SAAkCwI,EAASO,SACjCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5D6W,sBAAuBrQ,GAAO5L,WAAW,CAAEC,SAAS,IACpDic,uBAAwBtQ,GAAO5L,WAAW,CAAEC,SAAS,IACrDkc,UAAWvQ,GAAO5L,WAAW,CAAEC,SAAS,IACxCmc,uBAAwBxQ,GAAOrO,cAC/B22B,oBAAqBtoB,GAAOrO,cAC5B+iC,qBAAsB10B,GAAOrO,cAC7B42B,iBAAkBvoB,GAAOrO,cACzB62B,kBAAmBxoB,GAAOrO,cAC1BgjC,kBAAmB30B,GAAOrO,cAC1B8f,cAAelY,EAAU,eACzBmY,cAAenY,EAAU,eACzBkX,MAAOzQ,GAAOxG,WAAW,CACrB6uB,MAAOroB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,UAAY/M,IAAK,OAC3D8rB,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OACxDwrB,eAAgB1Q,GAAO5L,aACvBuc,eAAgB3Q,GAAO5L,aACvB0c,gBAAiB9Q,GAAO5L,WAAW,CAAEC,SAAS,IAC9C0c,cAAe/Q,GAAO5L,WAAW,CAAEC,SAAS,IAC5Cuc,sBAAuB5Q,GAAOrO,cAC9Bkf,sBAAuB7Q,GAAOrG,IAAIqG,GAAOrO,eACzC4gB,sBAAuBvS,GAAOrG,IAAIqG,GAAOrO,eACzC8gB,UAAWzS,GAAOrG,IAAIqG,GAAOrO,eAC7BukC,kBAAmBl2B,GAAOrG,IAAIqG,GAAOrO,eACrCsf,SAAUjR,GAAOxG,WAAW,CACxB0X,SAAUlR,GAAO5L,aACjB+c,QAASnR,GAAO5L,aAChBgd,UAAWpR,GAAO5L,aAClBid,SAAUrR,GAAO5L,eAErBod,aAAcjY,EAAU,gBACxB+X,UAAW/X,EAAU,kBAEzBq8B,QAAS51B,GAAOxG,WAAW,CACvB2b,YAAa5b,EAAU,oBACvB6b,SAAU7b,EAAU,oBACpBu8B,gBAAiBv8B,EAAU,oBAC3Bs8B,QAASt8B,EAAU,oBACnB8b,UAAW9b,EAAU,oBACrB3M,MAAO2M,EAAU,sBAErBwb,WAAYxb,EAAU,yBACvB,CAAE1c,QAAS,wBAA8B,CACxC+I,QAAS,IAAMqa,GAASmS,qBACxB1iB,SAAU,CAAC3J,EAAM/G,EAAO8N,EAAQ0B,SACxBhC,EAAIiC,EAAIC,EAAIC,SAE0D,UAA/D3P,SADH+H,EAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,SACK,EAASxP,EAAMyxB,aAA0B,IAAPjkB,OAAgB,EAASA,EAAG67B,QAA+E,UAA/DrpC,MAAAA,OAAqC,EAASA,EAAMyxB,aAA0B,IAAPhiB,OAAgB,EAASA,EAAGuiB,QAAU,QAChOxgB,IAAIzK,EAAKtK,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,UAA/DuD,MAAAA,OAAqC,EAASA,EAAMyxB,aAA0B,IAAP/hB,OAAgB,EAASA,EAAGsiB,QAAU,IAAO,KACpHxgB,IAAIzK,EAAKtK,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,UAA/DuD,MAAAA,OAAqC,EAASA,EAAMyxB,aAA0B,IAAP9hB,OAAgB,EAASA,EAAG05B,OAAS,IAAO,KACnH73B,IAAIzK,EAAKtK,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEuD,UAGPoa,SAAS,eAAgB4G,GAAOxG,WAAW,CAC/CtS,OAAQ8Y,GAAO5L,aACfmd,KAAMvR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAC9C5F,OAAQ2T,GAAO5L,WAAW,CAAEC,SAAS,SAEjC+E,SAAS,uBAAwB4G,GAAOxG,WAAW,CACvDwqB,WAAYhkB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrCiF,SAAUuB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OAC1DysB,OAAQ3R,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OACxDqX,MAAOyD,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,UAE3D6vB,WAAY/U,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gCAAmC2I,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC3IyqB,QAASjkB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,OACzDg/B,WAAYlkB,GAAOvO,IAAIuO,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,EAAG/M,IAAK,QAAU6B,IAAU,CACvF2I,SAAU,CAAC3J,EAAM/G,EAAO8N,EAAQ0B,KACxBzI,EAAKsF,MAAM5P,KAAK,WAAWgR,OAASzN,KAC7BwR,IAAIzK,EAAM,oCAEdgB,EAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,QAGlD21B,KAAMnkB,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,KAC/C,CAAEpV,QAAS,wBAA0B,CACpC+I,QAAS,KAAO,CACZq+B,QAAS,GACTC,WAAY,EACZC,KAAM,YAIV/qB,SAAS,kBAAmB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC7DY,MAAOd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,WAC3D2Z,OAAQhR,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,MAChD,CACArM,QAAS,KAAO,CACZwU,MAAO,kBACP4W,OAAQ,kBCtGpBvoB,OAAOuC,eAAeo5B,GAAS,aAAc,CAAEplC,OAAO,wCAChB,EACtC,MAAMghB,GAAS7R,kCACf,SAAqCyI,EAASO,SACpCmC,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7CytB,EAAqB,CACvBC,WAAYhrB,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,6BAChEka,KAAMvR,GAAO5L,WAAW,CAAEC,SAAS,OAE/B+E,SAAS,+BAAgC4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC1E3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gCAC1DrF,OAAQgO,GAAOxG,WAAW,EACrBwG,GAAO/K,QAAS,CAAC,MAAO,CAAExZ,KAAM,UAChCukB,GAAO9K,MAAO,CACXqvB,4BAA6BF,EAC7BG,4BAA6B,CACzB5c,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElDu/B,sBAAuB,CACnB5oC,KAAMyd,EAAW,CAAEtC,KAAM,CAAC,SAAU,UACpC4Q,YAAa5H,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAElD0vC,0BAA2B,CACvB5jB,OAAQzX,EAAU,oBAEtBmrB,uBAAwB,CACpBC,WAAYrrB,EAAW,CAAEtC,KAAM,CAAC,OAAQ,UACxC4tB,kBAAmB5kB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,IACpD2/B,oBAAqB7kB,GAAO5L,WAAW,CAAEnC,IAAK,EAAG/M,IAAK,KAE1D4/B,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAa1rB,EAAW,CAAEtC,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpGiuB,sBAAuB,CACnBC,WAAYllB,GAAOrG,IAAIqG,GAAOrO,gBAElCwzB,oBAAqBd,IAE1B,CAAExnC,QAAS,oBAAqBiZ,sBAAsB,KAC1D,CAAEjZ,QAAS,sBAAwB,CAClC+I,QAAS,KAAO,CACZ/J,KAAM,4BACNmW,OAAQ,CACJsyB,WAAY,2BACZ/S,KAAM,mBC9CtB9oB,OAAOuC,eAAeo6B,GAAS,aAAc,CAAEpmC,OAAO,sCAClB,EACpC,MAAMghB,GAAS7R,gCACf,SAAmCyI,EAASO,SAClCmC,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,GAC/CoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,KAC3CwC,SAAS,6BAA8B4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACxE3d,KAAMyd,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,8BAC1DrF,OAAQgO,GAAOxG,WAAW,CACtB6rB,aAAc9rB,EAAU,eACxB+rB,eAAgB/rB,EAAU,eAC1BgsB,oBAAqBhsB,EAAU,gBAChC,CAAE1c,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZ/J,KAAM,oBACNmW,OAAQ,CACJqzB,aAAc,CACV5rB,KAAM,wBACNC,WAAY,CACR8rB,MAAO,UAGfF,eAAgB,CACZ7rB,KAAM,kBAEV8rB,oBAAqB,CACjB9rB,KAAM,qCC3B1BhR,OAAOuC,eAAey6B,GAAS,aAAc,CAAEzmC,OAAO,oCACpB,EAClC,MAAMghB,GAAS7R,GAETq4B,GAAkBp4B,8BACxB,SAAiCwI,EAASO,SAChCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,gBAAiB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC3DxG,SAAUsG,IACVqsB,SAAU3lB,GAAOjO,SAASwH,EAAU,+BACrC,CAAE1c,QAAS,kBAAoB,CAC9B+I,QAAS,KAAO,CACZoN,SAAU,kBACV2yB,SAAU,CACN,CACI9e,OAAQ,EACRlb,QAAS,CACLi6B,aAAc,gCACdC,WAAY,QACZnL,WAAY,4BAMxBthB,SAAS,4BAA6B4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CACvEqN,OAAQ7G,GAAO5L,WAAW,CAAEC,SAAS,EAAMpC,IAAK,IAChDtG,QAAS4N,EAAU,qBACpB,CAAE3I,SAAU,SAAW,CACtBhL,QAAS,KAAO,CACZihB,OAAQ,EACRlb,QAAS,CACLi6B,aAAc,gCACdC,WAAY,QACZnL,WAAY,0BAIhBthB,SAAS,mBAAoB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC9DosB,aAActsB,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,qCAClEwuB,WAAYvsB,EAAW,CAAEtC,KAAM,CAAC,QAAS,uBACxCgJ,GAAO/K,QAAS,CAAC,CAAExZ,KAAM,kBACzBukB,GAAO9K,MAAO,CACX4wB,iCAAkC,CAC9B9oB,QAAS1D,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,mCAEjE0uB,uCAAwC,CACpCx/B,SAAU+S,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAC9DqjB,WAAY8L,GAAgBd,YAEhCM,8BAA+B,CAC3BL,SAAU3lB,GAAOjO,SAASwH,EAAU,sBAExC0sB,gCAAiC,CAC7B1/B,SAAU+S,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAC9DqjB,WAAY8L,GAAgBd,cAGrC,CAAE7oC,QAAS,mBAAoBiZ,sBAAsB,IAAS,CAC7DlQ,QAAS,KAAO,CACZggC,aAAc,gCACdC,WAAY,QACZnL,WAAY,wBC/DxBjyB,OAAOuC,eAAek7B,GAAS,aAAc,CAAElnC,OAAO,gCACxB,EAC9B,MAAMmnC,GAAUh4B,GACVi4B,GAAWh4B,GACXi4B,GAAc/3B,GACdg4B,GAAYxxB,GACZyxB,GAAkBxxB,GAClByxB,GAAkBhuB,GAClBiuB,GAAqBhuB,GACrBiuB,GAAmBhuB,GACnBiuB,GAAiBhuB,0BACvB,SAA6B/B,EAASO,MAElB8vB,yBAAyBrwB,EAASO,MAC1CyvB,iBAAiBhwB,EAASO,MACzB0vB,kBAAkBjwB,EAASO,MACxB2vB,qBAAqBlwB,EAASO,MAChC4vB,mBAAmBnwB,EAASO,MACtB6vB,yBAAyBpwB,EAASO,MAC/B+vB,4BAA4BtwB,EAASO,MACvCgwB,0BAA0BvwB,EAASO,MACrCiwB,wBAAwBxwB,EAASO,cCrBpD1O,OAAOuC,eAAeq8B,GAAS,aAAc,CAAEroC,OAAO,qCACnB,EACnC,MAAMghB,GAAS7R,+BACf,SAAkCyI,EAASO,SACjCoC,EAAYyG,GAAOrJ,UAAUzS,UAAK,EAAW0S,GAC7C0C,EAAa0G,GAAOlJ,WAAW5S,UAAK,EAAWiT,KAC7CiC,SAAS,iBAAkB4G,GAAOvO,IAAIuO,GAAOxG,WAAW,CAC5D8tB,kBAAmBtnB,GAAOrO,cAC1B41B,YAAavnB,GAAOrO,cACpB4X,KAAMvJ,GAAO5L,WAAW,CAAEC,SAAS,IACnCmzB,WAAYxnB,GAAO9L,QAAQoF,EAAW,CAAEpC,UAAW,WAAYlK,OAAQ,CAAEqK,KAAM,gBAAmBkC,EAAU,eAC7G,CAAE1c,QAAS,mBAAqB,CAC/B+I,QAAS,WACC2jB,EAAOpkB,KAAK6vB,MAAuB,WAAjB7vB,KAAK8vB,UAA2B,iBACjD,CACHqS,mBAAmB,EACnBC,aAAa,EACbhe,KAAAA,EACAie,WAAY,CACR1V,sBAAuB,CACnBj2B,KAAM,sBACN43B,UAAW,CACP53B,KAAM,kBACN0tB,KAAAA,EACAsK,aAAc,CACVh4B,KAAM,4BACN0tB,KAAAA,GAEJoK,SAAU,wBAGlB3B,uBAAwB,CACpBn2B,KAAM,uBACN43B,UAAW,CACP53B,KAAM,kBACN0tB,KAAAA,EACAsK,aAAc,CACVh4B,KAAM,wBACN0tB,KAAAA,EACA4K,eAAgB,CACZmB,eACAC,WAAY,CAAC,EAAK,IAEtBtB,eAAgB,CACZqB,eACAC,WAAY,CAAC,EAAK,IAEtBnB,gBAAiB,CACbkB,eACAC,WAAY,CAAC,EAAK,IAEtBrB,kBAAmB,CACfoB,eACAC,WAAY,CAAC,EAAK,IAEtBlB,OAAQ,CACJ,CACI5M,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKhpB,OAAQ,EAAK8oB,YAAa,EAAKC,SAAU,GACtFrY,MAAO,2BAEX,CACI0K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKhpB,OAAQ,EAAK8oB,YAAa,EAAKC,cAC5ErY,MAAO,8BAEX,CACI0K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKhpB,OAAQ,EAAK8oB,YAAa,GAAKC,SAAU,GACtFrY,MAAO,4BAEX,CACI0K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKhpB,OAAQ,KAAO8oB,YAAa,EAAKC,SAAU,IACxFrY,MAAO,2BAEX,CACI0K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKhpB,OAAQ,KAAO8oB,gBAAmBC,SAAU,GACzFrY,MAAO,6BAInB4W,SAAU,qBAGlBxB,oBAAqB,CACjBt2B,KAAM,oBACN43B,UAAW,CACP53B,KAAM,kBACN0tB,KAAAA,EACAsK,aAAc,CACVh4B,KAAM,oBACN0tB,KAAAA,GAEJoK,SAAU,yBC1FtClrB,OAAOuC,eAAe4iB,GAAS,aAAc,CAAE5uB,OAAO,wBAChC,EACtB,MAAM6uB,GAAgB1f,GAChB8R,GAAW7R,GACX0f,GAAcxf,GACdm5B,GAAc3yB,GACd4yB,GAAkB3yB,GAClB8/B,GAAiBr8B,GACjBuV,GAActV,GACduV,GAAetV,GACfwH,GAAevH,GACfsV,GAAWrV,GACXsV,GAASrV,GACTsV,GAAkBrV,GAClB6uB,GAAa5uB,GACb6uB,GAAkB5uB,kBACxB,SAAqBpC,EAASO,MAEjBiX,kBAAkBxX,EAASO,MACtBmX,uBAAuB1X,EAASO,MAClCoX,qBAAqB3X,EAASO,MAC1B0wB,yBAAyBjxB,EAASO,MACtC2wB,qBAAqBlxB,EAASO,MAC3B29B,wBAAwBl+B,EAASO,MACpCqX,qBAAqB5X,EAASO,MAC7BsX,sBAAsB7X,EAASO,MAC/BkX,sBAAsBzX,EAASO,MACnCuX,kBAAkB9X,EAASO,MAC7BwX,gBAAgB/X,EAASO,MAChByX,yBAAyBhY,EAASO,MACvC4wB,oBAAoBnxB,EAASO,MACxB6wB,yBAAyBpxB,EAASO,IC/BtD,IAAIe,GAAmBtb,IAAQA,GAAKsb,yBAA4BxP,OAAU,SAAStN,EAAGmD,EAAGF,EAAG8Z,QAC7E,IAAPA,MAAuB9Z,UACpB2M,eAAe5P,EAAG+c,EAAI,CAAEC,YAAY,EAAM3L,IAAK,kBAAoBlO,EAAEF,OAC1E,SAASjD,EAAGmD,EAAGF,EAAG8Z,QACT,IAAPA,MAAuB9Z,KACzB8Z,GAAM5Z,EAAEF,KAEVwwB,GAAsBjyB,IAAQA,GAAKiyB,4BAA+BnmB,OAAU,SAAStN,EAAGiF,UACjF2K,eAAe5P,EAAG,UAAW,CAAEgd,YAAY,EAAMpZ,MAAOqB,KAC9D,SAASjF,EAAGiF,aACEA,IAEfyuB,GAAgBlyB,IAAQA,GAAKkyB,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BtE,EAAS,MACF,MAAPsE,UAAsB1wB,KAAK0wB,EAAe,YAAN1wB,GAAmBoK,OAAO8P,eAAejW,KAAKysB,EAAK1wB,OAAoBosB,EAAQsE,EAAK1wB,aACzGosB,EAAQsE,GACpBtE,GAEXhiB,OAAOuC,eAAeikB,GAAS,aAAc,CAAEjwB,OAAO,IACtD,4CAA8C,EAC9C,MAAMghB,GAAS7R,GACT+gB,GAAgB9gB,GAChB+gB,GAAY7gB,GAClB,sBAAsBwgB,GAAaha,IAMnC,yBALA,iBACUqC,EAAc,IAAI6I,GAAOoP,6BACjBC,gBAAgBlY,GACvBA,GAsBXmY,iBALA,SAAoBnY,SACVP,EAAU,IAAIoJ,GAAOuP,yBACjBC,YAAY5Y,EAASO,GACxBP,qLChDX4hC,GAUA,SAAe/zC,YACNA,GAAQ,IAENg0C,QA4EX,SAAsBh0C,OAChBi0C,EAAO,GACPC,EAAU,UAEPl0C,EAAKm0C,iBA8DSx9C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAay9C,YAAa,IAAIA,KAAKz9C,MACnCuD,MAAMC,QAAQxD,UAAW09C,EAAW19C,EAAG29C,MACvC39C,aAAa8pB,WAAY,IAAIA,IAAI4zB,EAAWn6C,MAAMsP,KAAK7S,GAAI29C,OAC3D39C,aAAaob,WAAY,IAAIA,IAAIsiC,EAAWn6C,MAAMsP,KAAK7S,GAAI29C,QAC3DC,EAAK,WAGA36C,OAFJ5C,KAAKL,KACFK,KAAKu9C,GACC59C,EAAG,KACX69C,EAAM79C,EAAEiD,MACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,UACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,WACRA,aAAe/zB,MACrB7mB,GAAK,IAAI6mB,IAAI4zB,EAAWn6C,MAAMsP,KAAKgrC,GAAMF,YACnCE,aAAeziC,MACrBnY,GAAK,IAAImY,IAAIsiC,EAAWn6C,MAAMsP,KAAKgrC,GAAMF,YACnCG,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,OACd,KACD/9C,EAAIw9C,EAAK37C,QAAQk8C,KAEhB56C,QADDnD,EACMy9C,EAAQz9C,GAER69C,EAAWE,aAIpB5tC,QACGA,MACD2tC,cApEO59C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAay9C,YAAa,IAAIA,KAAKz9C,MACnCuD,MAAMC,QAAQxD,UAAW09C,EAAW19C,EAAGi+C,MACvCj+C,aAAa8pB,WAAY,IAAIA,IAAI4zB,EAAWn6C,MAAMsP,KAAK7S,GAAIi+C,OAC3Dj+C,aAAaob,WAAY,IAAIA,IAAIsiC,EAAWn6C,MAAMsP,KAAK7S,GAAIi+C,QAC3DL,EAAK,WAGA36C,OAFJ5C,KAAKL,KACFK,KAAKu9C,GACC59C,MAC6B,IAArCqN,OAAO8P,eAAejW,KAAKlH,EAAGiD,QAC9B46C,EAAM79C,EAAEiD,MACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,UACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,WACRA,aAAe/zB,MACrB7mB,GAAK,IAAI6mB,IAAI4zB,EAAWn6C,MAAMsP,KAAKgrC,GAAMI,YACnCJ,aAAeziC,MACrBnY,GAAK,IAAImY,IAAIsiC,EAAWn6C,MAAMsP,KAAKgrC,GAAMI,YACnCH,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,OACd,KACD/9C,EAAIw9C,EAAK37C,QAAQk8C,KAEhB56C,QADDnD,EACMy9C,EAAQz9C,GAERm+C,EAAMJ,aAIf5tC,QACGA,MACD2tC,cAzDY/6C,EAAGqO,WAClB2H,EAAOxL,OAAOwL,KAAKhW,GACnBq7C,EAAK,IAAI36C,MAAMsV,EAAKzY,QACfN,EAAI,EAAGA,EAAI+Y,EAAKzY,OAAQN,IAAK,KAChCmD,EAAI4V,EAAK/Y,GACT+9C,EAAMh7C,EAAEI,MACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,UACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,WACRC,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,OACd,KACDnzC,EAAQ4yC,EAAK37C,QAAQk8C,KAEpB56C,QADDyH,EACM6yC,EAAQ7yC,GAERwG,EAAG2sC,WAIVK;wEAvGgBC,CAAY90C,GAC9BA,EAAKm0C,iBAgDSx9C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAay9C,YAAa,IAAIA,KAAKz9C,MACnCuD,MAAMC,QAAQxD,UAAW09C,EAAW19C,EAAG29C,MACvC39C,aAAa8pB,WAAY,IAAIA,IAAI4zB,EAAWn6C,MAAMsP,KAAK7S,GAAI29C,OAC3D39C,aAAaob,WAAY,IAAIA,IAAIsiC,EAAWn6C,MAAMsP,KAAK7S,GAAI29C,QAC3DC,EAAK,WACA36C,KAAKjD,EAAG,KACX69C,EAAM79C,EAAEiD,GACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,EACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,GACRA,aAAe/zB,MACrB7mB,GAAK,IAAI6mB,IAAI4zB,EAAWn6C,MAAMsP,KAAKgrC,GAAMF,IACnCE,aAAeziC,MACrBnY,GAAK,IAAImY,IAAIsiC,EAAWn6C,MAAMsP,KAAKgrC,GAAMF,IACnCG,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,KAEhB56C,GAAK06C,EAAWE,UAGhBD,cAlDO59C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAay9C,YAAa,IAAIA,KAAKz9C,MACnCuD,MAAMC,QAAQxD,UAAW09C,EAAW19C,EAAGi+C,MACvCj+C,aAAa8pB,WAAY,IAAIA,IAAI4zB,EAAWn6C,MAAMsP,KAAK7S,GAAIi+C,OAC3Dj+C,aAAaob,WAAY,IAAIA,IAAIsiC,EAAWn6C,MAAMsP,KAAK7S,GAAIi+C,QAC3DL,EAAK,WACA36C,KAAKjD,MAC6B,IAArCqN,OAAO8P,eAAejW,KAAKlH,EAAGiD,QAC9B46C,EAAM79C,EAAEiD,GACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,EACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,GACRA,aAAe/zB,MACrB7mB,GAAK,IAAI6mB,IAAI4zB,EAAWn6C,MAAMsP,KAAKgrC,GAAMI,IACnCJ,aAAeziC,MACrBnY,GAAK,IAAImY,IAAIsiC,EAAWn6C,MAAMsP,KAAKgrC,GAAMI,IACnCH,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,KAEhB56C,GAAKg7C,EAAMJ,UAGXD,cA3CY/6C,EAAGqO,WAClB2H,EAAOxL,OAAOwL,KAAKhW,GACnBq7C,EAAK,IAAI36C,MAAMsV,EAAKzY,QACfN,EAAI,EAAGA,EAAI+Y,EAAKzY,OAAQN,IAAK,KAChCmD,EAAI4V,EAAK/Y,GACT+9C,EAAMh7C,EAAEI,GACO,iBAAR46C,GAA4B,OAARA,IAC1B56C,GAAK46C,EACCA,aAAeJ,OACrBx6C,GAAK,IAAIw6C,KAAKI,GACRC,YAAYC,OAAOF,KACzB56C,GAAK+6C,GAAWH,KAEhB56C,GAAKiO,EAAG2sC,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAOvrC,KAAKgrC,GAGd,IAAIA,EAAIz8C,YAAYy8C,EAAIQ,OAAO75C,QAASq5C,EAAIS,WAAYT,EAAIz9C,QCkCrE,YAAgBm+C,OAAWC,EAAMD,EAAIn+C,cAAiBo+C,GAAO,KAASA,GAAO,EAI7E,MA2DMC,GACJ,IAAI/rC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEpEgsC,GACJ,IAAIhsC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAE7EisC,GACJ,IAAIjsC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhDksC,GACJ,IAAIlsC,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxDmsC,GAAgB,IAAIt7C,MAAO,KACjCu7C,GAAOD,IAOP,MAAME,GAAgB,IAAIx7C,MAAMy7C,IAChCF,GAAOC,IAKP,MAAME,GAAgB,IAAI17C,MAjBJ,KAkBtBu7C,GAAOG,IAMP,MAAMC,GAAgB,IAAI37C,MAAM47C,KAChCL,GAAOI,IAGP,MAAME,GAAgB,IAAI77C,MAhGF,IAiGxBu7C,GAAOM,IAGP,MAAMC,GAAgB,IAAI97C,MA3FF,IAgGxB,YAAwB+7C,EAAaC,EAAYC,EAAYC,EAAOC,QAE7DJ,YAAeA,OACfC,WAAeA,OACfC,WAAeA,OACfC,MAAeA,OACfC,WAAeA,OAGfC,UAAeL,GAAeA,EAAYl/C,OAIjD,IAAIw/C,GACAC,GACAC,GAGJ,YAAkBC,EAAUC,QACrBD,SAAWA,OACXE,SAAW,OACXD,UAAYA,EAzBnBlB,GAAOO,IA8BP,MAAMa,GAAUC,GAEPA,EAAO,IAAMlB,GAAWkB,GAAQlB,GAAW,SAAgB,IAQ9DmB,GAAY,CAACx9C,EAAGQ,OAGlBi9C,YAAYz9C,EAAE09C,WAAmB,IAALl9C,IAC5Bi9C,YAAYz9C,EAAE09C,WAAcl9C,IAAM,EAAK,KAQrCm9C,GAAY,CAAC39C,EAAGgB,EAAOxD,KAEvBwC,EAAE49C,SAtIc,GAsISpgD,KACzBqgD,QAAW78C,GAAShB,EAAE49C,SAAY,SAC1B59C,EAAGA,EAAE69C,UACbA,OAAS78C,GAzIO,GAyIchB,EAAE49C,WAChCA,UAAYpgD,EA1II,OA4IhBqgD,QAAW78C,GAAShB,EAAE49C,SAAY,QAClCA,UAAYpgD,IAKZsgD,GAAY,CAAC99C,EAAGD,EAAGg+C,QAEb/9C,EAAG+9C,EAAS,EAAJh+C,GAAiBg+C,EAAS,EAAJh+C,EAAQ,KAS5Ci+C,GAAa,CAACC,EAAMrC,SAEpBnpC,EAAM,QAEM,EAAPwrC,OACG,MACF,UACCrC,EAAM,UACVnpC,IAAQ,GAiIXyrC,GAAY,CAACH,EAAMV,EAAUc,WAK3BC,EAAY,IAAIz9C,MAAM09C,QAExBC,EACAzhD,EAFAohD,EAAO,MAONK,EAAO,EAAGA,GAtTO,GAsTaA,MACvBA,GAAQL,EAAQA,EAAOE,EAASG,EAAO,IAAO,MASrDzhD,EAAI,EAAIA,GAAKwgD,EAAUxgD,IAAK,KAC3B++C,EAAMmC,EAAS,EAAJlhD,EAAQ,GACX,IAAR++C,MAEK,EAAJ/+C,GAAkBmhD,GAAWI,EAAUxC,KAAQA,MAoHlD2C,GAAcv+C,QAEdnD,MAGCA,EAAI,EAAGA,EAzcU2hD,IAycM3hD,MAAS4hD,UAAc,EAAJ5hD,GAAkB,MAC5DA,EAAI,EAAGA,EAvcU,GAucMA,MAAS6hD,UAAc,EAAJ7hD,GAAkB,MAC5DA,EAAI,EAAGA,EArcU,GAqcMA,MAAS8hD,QAAY,EAAJ9hD,GAAkB,IAE7D4hD,UAAUG,KAA0B,IACpCC,QAAU7+C,EAAE8+C,WAAa,IACzBC,SAAW/+C,EAAE6G,QAAU,GAOrBm4C,GAAah/C,IAEbA,EAAE49C,SAAW,KACL59C,EAAGA,EAAE69C,QACN79C,EAAE49C,SAAW,MAEpBH,YAAYz9C,EAAE09C,WAAa19C,EAAE69C,UAE/BA,OAAS,IACTD,SAAW,GA8BTqB,GAAU,CAAClB,EAAMlhD,EAAG0D,EAAG43B,WAErB+mB,EAAU,EAAJriD,EACNsiD,EAAU,EAAJ5+C,SACJw9C,EAAKmB,GAAgBnB,EAAKoB,IAC1BpB,EAAKmB,KAAkBnB,EAAKoB,IAAiBhnB,EAAMt7B,IAAMs7B,EAAM53B,IASnE6+C,GAAa,CAACp/C,EAAG+9C,EAAM19C,WAKrBgC,EAAIrC,EAAEq/C,KAAKh/C,OACbi/C,EAAIj/C,GAAK,OACNi/C,GAAKt/C,EAAEu/C,WAERD,EAAIt/C,EAAEu/C,UACRN,GAAQlB,EAAM/9C,EAAEq/C,KAAKC,EAAI,GAAIt/C,EAAEq/C,KAAKC,GAAIt/C,EAAEm4B,aAIxC8mB,GAAQlB,EAAM17C,EAAGrC,EAAEq/C,KAAKC,GAAIt/C,EAAEm4B,WAGhCknB,KAAKh/C,GAAKL,EAAEq/C,KAAKC,KACfA,MAGE,IAEND,KAAKh/C,GAAKgC,GAURm9C,GAAiB,CAACx/C,EAAGy/C,EAAOC,SAK5BnC,EACAoC,EAEA1B,EACAt0B,EAFAi2B,EAAK,KAIU,IAAf5/C,EAAE++C,cAEM/+C,EAAEy9C,YAAYz9C,EAAE6/C,MAAa,EAALD,IAAW,EAAM5/C,EAAEy9C,YAAYz9C,EAAE6/C,MAAa,EAALD,EAAS,KAC7E5/C,EAAEy9C,YAAYz9C,EAAE8/C,MAAQF,OAGhB,IAATrC,KACQv9C,EAAG2/C,EAAIF,MAIVnD,GAAaqD,MACV3/C,EAAGi+C,EAtkBG,IAskBiB,EAAGwB,KAC5B5D,GAAYoC,GACN,IAAVt0B,OACI6yB,GAAYyB,MACRj+C,EAAG2/C,EAAIh2B,UAGZ2zB,GAAOC,MAGJv9C,EAAGi+C,EAAMyB,KACX5D,GAAYmC,GACN,IAAVt0B,OACM8yB,GAAUwB,MACRj+C,EAAGu9C,EAAM5zB,WAQhBi2B,EAAK5/C,EAAE++C,aAGR/+C,EAlkBQ,IAkkBMy/C,IAYpBM,GAAa,CAAC//C,EAAGggD,WAIfjC,EAAWiC,EAAK7C,SAChB8C,EAAWD,EAAK5C,UAAUV,YAC1BK,EAAYiD,EAAK5C,UAAUL,UAC3BF,EAAWmD,EAAK5C,UAAUP,UAC5BhgD,EAAG0D,EAEHwI,EADAs0C,WAOFkC,SAAW,IACXW,SAhnBoB,IAknBjBrjD,EAAI,EAAGA,EAAIggD,EAAOhgD,IACQ,IAAzBkhD,EAAS,EAAJlhD,MACLwiD,OAAOr/C,EAAEu/C,UAAYlC,EAAWxgD,IAChCs7B,MAAMt7B,GAAK,KAGJ,EAAJA,EAAQ,GAAa,OASvBmD,EAAEu/C,SAAW,KACXv/C,EAAEq/C,OAAOr/C,EAAEu/C,UAAalC,EAAW,IAAMA,EAAW,IAC/C,EAAPt0C,GAAqB,IACxBovB,MAAMpvB,GAAQ,IACd81C,UAEE9B,MACA+B,YAAcmB,EAAa,EAAPl3C,EAAW,UAIhCs0C,SAAWA,EAKXxgD,EAAKmD,EAAEu/C,UAAY,EAAc1iD,GAAK,EAAGA,OAAkBmD,EAAG+9C,EAAMlhD,KAKlEggD,OAID78C,EAAEq/C,KAAK,KACTA,KAAK,GAAiBr/C,EAAEq/C,KAAKr/C,EAAEu/C,eACtBv/C,EAAG+9C,EAAM,KAGhB/9C,EAAEq/C,KAAK,KAETA,OAAOr/C,EAAEkgD,UAAYrjD,IACrBwiD,OAAOr/C,EAAEkgD,UAAY3/C,IAGX,EAAPwI,GAAqBg1C,EAAS,EAAJlhD,GAAkBkhD,EAAS,EAAJx9C,KACpD43B,MAAMpvB,MAAWovB,MAAMt7B,IAAMmD,EAAEm4B,MAAM53B,GAAKP,EAAEm4B,MAAMt7B,GAAKmD,EAAEm4B,MAAM53B,IAAM,IAC9D,EAAJ1D,EAAQ,GAAakhD,EAAS,EAAJx9C,EAAQ,GAAawI,IAGlDs2C,KAAK,GAAiBt2C,OACb/I,EAAG+9C,EAAM,SAEb/9C,EAAEu/C,UAAY,KAErBF,OAAOr/C,EAAEkgD,UAAYlgD,EAAEq/C,KAAK,GApeb,EAACr/C,EAAGggD,WAIfjC,EAAkBiC,EAAK7C,SACvBE,EAAkB2C,EAAK3C,SACvB4C,EAAkBD,EAAK5C,UAAUV,YACjCK,EAAkBiD,EAAK5C,UAAUL,UACjCpzB,EAAkBq2B,EAAK5C,UAAUT,WACjC39C,EAAkBghD,EAAK5C,UAAUR,WACjCE,EAAkBkD,EAAK5C,UAAUN,eACnC58C,EACArD,EAAG0D,EACH+9C,EACA6B,EACA5iD,EACA6iD,EAAW,MAEV9B,EAAO,EAAGA,GA1NO,GA0NaA,MAC/BH,SAASG,GAAQ,QAMK,EAArBt+C,EAAEq/C,KAAKr/C,EAAEkgD,UAAgB,GAAa,EAEtChgD,EAAIF,EAAEkgD,SAAW,EAAGhgD,EAtOH,IAsOoBA,MACpCF,EAAEq/C,KAAKn/C,KACJ69C,EAA+B,EAA1BA,EAAS,EAAJlhD,EAAQ,GAAiB,GAAa,EACnDyhD,EAAOxB,MACFA,SAGA,EAAJjgD,EAAQ,GAAayhD,EAGtBzhD,EAAIwgD,MAENc,SAASG,OACH,EACJzhD,GAAKmC,MACC2qB,EAAM9sB,EAAImC,MAEhB++C,EAAS,EAAJlhD,KACPgiD,SAAWthD,KAAY4iD,GACrBpD,MACA+B,YAAcvhD,KAAe,EAAJV,EAAQ,GAAasjD,QAGnC,IAAbC,KAMD,OACMtD,EAAa,EACQ,IAArB98C,EAAEm+C,SAASG,UAChBH,SAASG,OACTH,SAASG,EAAO,IAAM,IACtBH,SAASrB,QAIC,QACLsD,EAAW,OAOf9B,EAAOxB,EAAqB,IAATwB,EAAYA,UAC9Bt+C,EAAEm+C,SAASG,GACF,IAANzhD,KACDmD,EAAEq/C,OAAOn/C,GACTK,EAAI88C,IACJU,EAAS,EAAJx9C,EAAQ,KAAe+9C,MAE5BO,YAAmBd,EAAS,EAAJx9C,EAAQ,IAAcw9C,EAAS,EAAJx9C,KAC5C,EAAJA,EAAQ,GAAa+9C,WAwZrBt+C,EAAGggD,MAGJjC,EAAMV,EAAUr9C,EAAEm+C,WAQxBkC,GAAY,CAACrgD,EAAG+9C,EAAMV,SAKtBxgD,EAEAyjD,EADAC,KAGAC,EAAUzC,EAAK,GAEfx/B,EAAQ,EACRkiC,EAAY,EACZC,EAAY,MAEA,IAAZF,MACU,MACA,KAEQ,KAAL,GAAS,GAAa,MAElC3jD,EAAI,EAAGA,GAAKwgD,EAAUxgD,MAChB2jD,IACCzC,EAAe,KAAL,GAAS,KAEvBx/B,EAAQkiC,GAAaH,IAAWE,IAG3BjiC,EAAQmiC,IACf/B,QAAiB,EAAT2B,IAAwB/hC,EAEd,IAAX+hC,GAELA,IAAWC,KAAa5B,QAAiB,EAAT2B,OAClC3B,QAAQgC,OAEDpiC,GAAS,KAChBogC,QAAQiC,QAGRjC,QAAQkC,QAGJ,IACEP,EAEM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAUZM,GAAY,CAAC9gD,EAAG+9C,EAAMV,SAKtBxgD,EAEAyjD,EADAC,KAGAC,EAAUzC,EAAK,GAEfx/B,EAAQ,EACRkiC,EAAY,EACZC,EAAY,MAGA,IAAZF,MACU,MACA,GAGT3jD,EAAI,EAAGA,GAAKwgD,EAAUxgD,SAChB2jD,IACCzC,EAAe,KAAL,GAAS,OAEvBx/B,EAAQkiC,GAAaH,IAAWE,OAG3BjiC,EAAQmiC,QACF1gD,EAAGsgD,EAAQtgD,EAAE2+C,eAA+B,KAAVpgC,QAE7B,IAAX+hC,GACLA,IAAWC,OACHvgD,EAAGsgD,EAAQtgD,EAAE2+C,iBAIf3+C,EAlxBI,GAkxBQA,EAAE2+C,YACd3+C,EAAGue,EAAQ,EAAG,IAEfA,GAAS,OACRve,EAnxBI,GAmxBUA,EAAE2+C,YAChB3+C,EAAGue,EAAQ,EAAG,QAGdve,EApxBI,GAoxBYA,EAAE2+C,YAClB3+C,EAAGue,EAAQ,GAAI,MAGnB,IACE+hC,EACM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAwHlB,IAAIO,IAAmB,EAKvB,MAuBMC,GAAqB,CAAChhD,EAAG27C,EAAKsF,EAAY/uC,QAMpClS,EAAI,KAA6B,EAAI,GAAI,GA3flC,EAACA,EAAG27C,EAAKC,EAAKsF,QAMrBlhD,GAENkhD,OACQlhD,EAAG47C,MACH57C,GAAI47C,MAKd6B,YAAY/uC,IAAI1O,EAAEmhD,OAAOC,SAASzF,EAAKA,EAAMC,GAAM57C,EAAE09C,WACrDA,SAAW9B,IA4eF57C,EAAG27C,EAAKsF,GAAY,IAoKjC,IAMII,GAAQ,CACXC,SAzMmBthD,IAGb+gD,KA5mBgB,UAEjBlkD,EACAyhD,EACA9gD,EACAygD,EACAV,QACEY,EAAW,IAAIx9C,MAAM09C,UAgBlB,EACJJ,EAAO,EAAGA,EAAOsD,GAAoBtD,WAC5BA,GAAQzgD,EACfX,EAAI,EAAGA,EAAK,GAAKg/C,GAAYoC,GAAQphD,OAC3BW,KAAYygD,SAQhBzgD,EAAS,GAAKygD,IAGpB,EACFA,EAAO,EAAGA,EAAO,GAAIA,WACdA,GAAQV,EACb1gD,EAAI,EAAGA,EAAK,GAAKi/C,GAAYmC,GAAQphD,OAC7B0gD,KAAUU,UAIhB,EACFA,EAvYe,GAuYGA,WACbA,GAAQV,GAAQ,EACrB1gD,EAAI,EAAGA,EAAK,GAAMi/C,GAAYmC,GAAQ,EAAKphD,OACnC,IAAM0gD,KAAUU,MAM1BK,EAAO,EAAGA,GAvYO,GAuYaA,MACxBA,GAAQ,QAGf,EACGzhD,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,YAMDo/C,GAAcuF,IAAerD,GAGlCthD,EAAI,EAAGA,EAhbU,GAgbKA,OACR,EAAJA,EAAQ,GAAa,KACjB,EAAJA,GAAkBmhD,GAAWnhD,EAAG,MAI/B,IAAI4kD,GAAexF,GAAcJ,GAAa2C,IAzbxCA,IAYA,OA8aN,IAAIiD,GAAetF,GAAcL,GAAa,EAvbxC,GASA,OA+aL,IAAI2F,GAAe,IAAI9gD,MAAM,GAAIo7C,GAAc,EArb1C,GAiBJ,WAk7BG,KAGnB2F,OAAU,IAAIC,GAAS3hD,EAAEy+C,UAAWzB,MACpC4E,OAAU,IAAID,GAAS3hD,EAAE0+C,UAAWzB,MACpC4E,QAAU,IAAIF,GAAS3hD,EAAE2+C,QAASzB,MAElCW,OAAS,IACTD,SAAW,KAGF59C,IA0LZ8hD,iBAPwBd,GAQxBe,gBA1JyB,CAAC/hD,EAAG27C,EAAKsF,EAAY/uC,SAMzC8vC,EAAUC,EACVC,EAAc,EAGdliD,EAAE4b,MAAQ,GA5hCgB,IA+hCxB5b,EAAEmiD,KAAKC,cACPD,KAAKC,UArGY,CAACpiD,QAMpBnD,EADAwlD,EAAa,eAIZxlD,EAAI,EAAGA,GAAK,GAAIA,IAAKwlD,KAAgB,KACtB,EAAbA,GAAoD,IAAhCriD,EAAEy+C,UAAc,EAAJ5hD,UAx8BX,KA88BQ,IAAhCmD,EAAEy+C,UAAU,KAA0D,IAAjCz+C,EAAEy+C,UAAU,KAChB,IAAjCz+C,EAAEy+C,UAAU,WA98BY,MAi9BvB5hD,EAAI,GAAIA,EAr7BS,IAq7BOA,OACS,IAAhCmD,EAAEy+C,UAAc,EAAJ5hD,UAl9BU,SADA,GAmiCLylD,CAAiBtiD,OAI3BA,EAAGA,EAAE0hD,WAIL1hD,EAAGA,EAAE4hD,UA1LE,CAAC5hD,QAEjBkiD,SAGMliD,EAAGA,EAAEy+C,UAAWz+C,EAAE0hD,OAAOrE,aACzBr9C,EAAGA,EAAE0+C,UAAW1+C,EAAE4hD,OAAOvE,aAGxBr9C,EAAGA,EAAE6hD,SASXK,EAAcK,GAAgBL,GAAe,GACS,IAArDliD,EAAE2+C,QAAgC,EAAxB3C,GAASkG,GAAmB,GADSA,cAMnDrD,SAAW,KAAmB,GAAK,EAAI,EAAI,EAItCqD,GAwKSM,CAAcxiD,KAGhBA,EAAE6+C,QAAU,EAAI,IAAO,IACpB7+C,EAAE8+C,WAAa,EAAI,IAAO,EAMrCmD,GAAeD,MAAuBC,MAI/BA,EAAchB,EAAa,EAGnCA,EAAa,GAAKe,QAAcrG,KAShB37C,EAAG27C,EAAKsF,EAAY/uC,GAnlCX,IAqlCnBlS,EAAEyiD,UAA0BR,IAAgBD,MAE3ChiD,EAAI,KAA6B,EAAI,GAAI,MACpCA,EAAGi8C,GAAcE,SAGtBn8C,EAAI,KAA0B,EAAI,GAAI,GAjM7B,EAACA,EAAG0iD,EAAQC,EAAQC,SAIrCC,SAMM7iD,EAAG0iD,EAAS,IAAK,MACjB1iD,EAAG2iD,EAAS,EAAK,MACjB3iD,EAAG4iD,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,OAEnB7iD,EAAGA,EAAE2+C,QAAyB,EAAjB3C,GAAS6G,GAAY,GAAY,MAIhD7iD,EAAGA,EAAEy+C,UAAWiE,EAAS,MAGzB1iD,EAAGA,EAAE0+C,UAAWiE,EAAS,KA4KlB3iD,EAAGA,EAAE0hD,OAAOrE,SAAW,EAAGr9C,EAAE4hD,OAAOvE,SAAW,EAAG6E,EAAc,MAC/DliD,EAAGA,EAAEy+C,UAAWz+C,EAAE0+C,eAMxB1+C,GAEPkS,MACQlS,IA8Eb8iD,UApEmB,CAAC9iD,EAAGu9C,EAAMoC,OAO1BlC,YAAYz9C,EAAE6/C,MAAqB,EAAb7/C,EAAE++C,UAAqBxB,IAAS,EAAK,MAC3DE,YAAYz9C,EAAE6/C,MAAqB,EAAb7/C,EAAE++C,SAAe,GAAY,IAAPxB,IAE5CE,YAAYz9C,EAAE8/C,MAAQ9/C,EAAE++C,UAAiB,IAALY,IACpCZ,WAEW,IAATxB,IAEAkB,UAAe,EAALkB,QAEV94C,gBAOA43C,UAAgD,MAAxBkB,GAvmCN,IAumCyB,QAC3CjB,UAAyB,EAAfpB,GAAOC,OA0Bbv9C,EAAE++C,WAAa/+C,EAAE+iD,YAAc,GAkBxCC,UAvKoBhjD,OACTA,EAAGijD,EAAmB,MACtBjjD,EAl9BQ,IAk9BMi8C,IAjzBT,CAACj8C,IAEG,KAAfA,EAAE49C,aACM59C,EAAGA,EAAE69C,UACbA,OAAS,IACTD,SAAW,GAEJ59C,EAAE49C,UAAY,MACrBH,YAAYz9C,EAAE09C,WAAwB,IAAX19C,EAAE69C,SAC7BA,SAAW,IACXD,UAAY,KAwyBP59C,KAuNX,IAAIkjD,GAzBY,CAACC,EAAOxH,EAAKC,EAAKwH,SAC5BC,EAAc,MAARF,EAAiB,EACvBnjD,EAAOmjD,IAAU,GAAM,MAAS,EAChCtmD,EAAI,OAEO,IAAR++C,GAAW,GAIZA,EAAM,IAAO,IAAOA,KACjB/+C,OAGCwmD,EAAK1H,EAAIyH,KAAS,IAClBpjD,EAAKqjD,EAAK,UACPxmD,MAEL,SACA,aAGAwmD,EAAMrjD,GAAM,GAAM,GA8B5B,MAeMsjD,GAAW,IAAIC,YAfH,UACZxjD,EAAGyjD,EAAQ,WAEN3mD,EAAI,EAAGA,EAAI,IAAKA,IAAK,GACxBA,UACKwD,EAAI,EAAGA,EAAI,EAAGA,MACX,EAAJN,EAAU,WAAcA,IAAM,EAAOA,IAAM,IAE7ClD,GAAKkD,SAGNyjD,GAIwBC,IAiBjC,IAAIC,GAdU,CAACC,EAAKhI,EAAKC,EAAKwH,WACtBjmD,EAAImmD,GACJ71C,EAAM21C,EAAMxH,gBAIT1+C,EAAIkmD,EAAKlmD,EAAIuQ,EAAKvQ,MAClBymD,IAAQ,EAAKxmD,EAAmB,OAAVw+C,EAAIz+C,cAG3BymD,GAyBNC,GAAW,CACbC,EAAQ,kBACRC,EAAQ,aACRC,EAAQ,GACRC,KAAQ,aACRC,KAAQ,eACRC,KAAQ,aACRC,KAAQ,sBACRC,KAAQ,eACRC,KAAQ,wBAsBNC,GAAc,CAGhBC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,WACAC,kBACAC,gBACAC,eACAC,eAIAC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,yBAGAC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GAuB5B,MAAM5E,SAAEA,oBAAUQ,mBAAkBC,aAAiBe,aAAWE,IAAc3B,IAS5EkD,WAAY4B,mBAAc3B,GAAiBE,aAAc0B,GAAgBzB,SAAU0B,GAAYzB,QAAS0B,GACxGxB,KAAMyB,GAAQxB,aAAcyB,GAAgBtB,eAAgBuB,GAAkBtB,aAAcuB,GAAgBrB,YAAasB,GACzHlB,sBAAuBmB,cACvBlB,kBAAYC,SAAgBC,WAAOC,GAASC,mBAAoBe,aAChEZ,GACAC,WAAYY,IACVxC,GAgDEyC,GAAM,CAAC5E,EAAM6E,OACZC,IAAMrD,GAASoD,GACbA,GAGHn/C,GAAQtK,OACG,MAAY,EAAI,EAAI,GAG/B2pD,GAAQvL,QACRC,EAAMD,EAAIn+C,cAAiBo+C,GAAO,KAASA,GAAO,GAKxD,IAIIuL,GAJY,CAACnnD,EAAGonD,EAAM/iD,QAAmBrE,EAAEqnD,WAAchjD,GAAQrE,EAAEsnD,UAYvE,MAAMC,GAAiBpF,UACfniD,EAAImiD,EAAKn/C,UAGX44C,EAAM57C,EAAE09C,QACR9B,EAAMuG,EAAKqF,cACPrF,EAAKqF,WAED,IAAR5L,MAEC6L,OAAO/4C,IAAI1O,EAAEy9C,YAAY2D,SAASphD,EAAE0nD,YAAa1nD,EAAE0nD,YAAc9L,GAAMuG,EAAKwF,YAC5EA,UAAY/L,IACf8L,aAAe9L,IACZgM,WAAahM,IACb4L,WAAa5L,IAChB8B,SAAW9B,EACK,IAAd57C,EAAE09C,YACFgK,YAAc,KAKdG,GAAmB,CAAC7nD,EAAGkS,QACXlS,EAAIA,EAAE8nD,aAAe,EAAI9nD,EAAE8nD,eAAmB9nD,EAAE+nD,SAAW/nD,EAAE8nD,YAAa51C,KACxF41C,YAAc9nD,EAAE+nD,YACJ/nD,EAAEmiD,OAIZ6F,GAAW,CAAChoD,EAAGM,OACjBm9C,YAAYz9C,EAAE09C,WAAap9C,GASzB2nD,GAAc,CAACjoD,EAAGM,OAIpBm9C,YAAYz9C,EAAE09C,WAAcp9C,IAAM,EAAK,MACvCm9C,YAAYz9C,EAAE09C,WAAiB,IAAJp9C,GAWzB4nD,GAAW,CAAC/F,EAAMxG,EAAKzuC,EAAOqmB,SAE9BqoB,EAAMuG,EAAKgG,gBAEXvM,EAAMroB,MAAcA,GACZ,IAARqoB,EAAoB,KAEnBuM,UAAYvM,IAGbltC,IAAIyzC,EAAKiG,MAAMhH,SAASe,EAAKkG,QAASlG,EAAKkG,QAAUzM,GAAM1uC,GACvC,IAApBi1C,EAAKn/C,MAAMslD,OACRnF,MAAQD,GAAUf,EAAKgB,MAAOxH,EAAKC,EAAK1uC,GAGlB,IAApBi1C,EAAKn/C,MAAMslD,SACbnF,MAAQO,GAAQvB,EAAKgB,MAAOxH,EAAKC,EAAK1uC,MAGxCm7C,SAAWzM,IACX2M,UAAY3M,EAEVA,IAaH4M,GAAgB,CAACxoD,EAAGyoD,SAIpB7hD,EACAg1C,EAHA8M,EAAe1oD,EAAE2oD,iBACjBC,EAAO5oD,EAAE+nD,SAGTc,EAAW7oD,EAAE8oD,YACbC,EAAa/oD,EAAE+oD,iBACbh+B,EAAS/qB,EAAE+nD,SAAY/nD,EAAEgpD,OAhJVC,IAiJjBjpD,EAAE+nD,YAAciB,OAjJCC,KAiJyB,EAExCC,EAAOlpD,EAAEmhD,OAETgI,EAAQnpD,EAAEopD,OACVhC,EAAQpnD,EAAEonD,KAMViC,EAASrpD,EAAE+nD,SA7JD,QA8JZuB,EAAaJ,EAAKN,EAAOC,EAAW,GACpCU,EAAaL,EAAKN,EAAOC,GAQzB7oD,EAAE8oD,aAAe9oD,EAAEwpD,iBACJ,GAKfT,EAAa/oD,EAAEypD,cAA0BzpD,EAAEypD,mBAMrChB,EAWJS,EAAKtiD,EAAQiiD,KAAkBU,GAC/BL,EAAKtiD,EAAQiiD,EAAW,KAAOS,GAC/BJ,EAAKtiD,KAA0BsiD,EAAKN,IACpCM,IAAOtiD,KAAwBsiD,EAAKN,EAAO,OAUvC,gBASCM,IAAON,KAAUM,IAAOtiD,IAAUsiD,IAAON,KAAUM,IAAOtiD,IAC1DsiD,IAAON,KAAUM,IAAOtiD,IAAUsiD,IAAON,KAAUM,IAAOtiD,IAC1DsiD,IAAON,KAAUM,IAAOtiD,IAAUsiD,IAAON,KAAUM,IAAOtiD,IAC1DsiD,IAAON,KAAUM,IAAOtiD,IAAUsiD,IAAON,KAAUM,IAAOtiD,IAC1DgiD,EAAOS,QAxNF,OA4NcT,KACrBS,EA7NO,IA+NVzN,EAAMiN,EAAU,MAChBa,YAAcjB,IACL7M,EACPA,GAAOmN,UAGEG,EAAKN,EAAOC,EAAW,KACvBK,EAAKN,EAAOC,cAEPzB,EAAKqB,EAAYU,IAAUp+B,GAA4B,KAAjB29B,UAExDG,GAAY7oD,EAAEypD,UACTZ,EAEF7oD,EAAEypD,WAcLE,GAAe3pD,UAEb4pD,EAAU5pD,EAAEgpD,WACd7oD,EAAGtD,EAAG0D,EAAGspD,EAAMv6C,IAIhB,MACMtP,EAAE8pD,YAAc9pD,EAAEypD,UAAYzpD,EAAE+nD,SAoBnC/nD,EAAE+nD,UAAY6B,KAtRCX,KAsRoC,GAEnD9H,OAAOzyC,IAAI1O,EAAEmhD,OAAOC,SAASwI,EAASA,EAAUA,GAAU,KAC1DF,aAAeE,IACf7B,UAAY6B,IAEZ9B,aAAe8B,IASb5pD,EAAE+pD,YACFltD,OAGEmD,EAAEgqD,OAAO7pD,KACX6pD,KAAK7pD,GAAMI,GAAKqpD,EAAUrpD,EAAIqpD,EAAU,UACjC/sD,KAEP+sD,IACA/sD,OAGEmD,EAAEonD,OAAOjnD,KACXinD,KAAKjnD,GAAMI,GAAKqpD,EAAUrpD,EAAIqpD,EAAU,UAIjC/sD,MAEH+sD,KAEc,IAApB5pD,EAAEmiD,KAAKgG,oBAgBPD,GAASloD,EAAEmiD,KAAMniD,EAAEmhD,OAAQnhD,EAAE+nD,SAAW/nD,EAAEypD,UAAWI,KACvDJ,WAAa5sD,EAGXmD,EAAEypD,UAAYzpD,EAAEiqD,QAhVN,QAiVNjqD,EAAE+nD,SAAW/nD,EAAEiqD,SACnBC,MAAQlqD,EAAEmhD,OAAO7xC,KAGjB46C,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAO7xC,EAAM,IAInCtP,EAAEiqD,WAELC,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAO7xC,EA3V1B,EA2V4C,MAEpD83C,KAAK93C,EAAMtP,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SAChCF,KAAKhqD,EAAEkqD,OAAS56C,QAEhB26C,WACEjqD,EAAEypD,UAAYzpD,EAAEiqD,OAjWV,aA0WPjqD,EAAEypD,UAxWUR,KAwWuC,IAApBjpD,EAAEmiD,KAAKgG,WAoJ3CgC,GAAe,CAACnqD,EAAGoqD,SAEnBC,EACAC,SAEK,IAMHtqD,EAAEypD,UAvgBaR,IAugBc,OACnBjpD,GACRA,EAAEypD,UAzgBWR,KAygBkBmB,IAAUjE,UA7fzB,KAggBA,IAAhBnmD,EAAEypD,qBAQI,EACRzpD,EAAEypD,WAvhBQ,MAyhBVS,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAOnhD,EAAE+nD,SAzhB1B,EAyhBiD,MACjD/nD,EAAEonD,KAAKpnD,EAAE+nD,SAAW/nD,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SACnDF,KAAKhqD,EAAEkqD,OAASlqD,EAAE+nD,UAOJ,IAAdsC,GAA4BrqD,EAAE+nD,SAAWsC,GAAerqD,EAAEgpD,OAhiB3CC,QAqiBfsB,aAAe/B,GAAcxoD,EAAGqqD,IAGhCrqD,EAAEuqD,cA1iBQ,OA+iBHzH,GAAU9iD,EAAGA,EAAE+nD,SAAW/nD,EAAE0pD,YAAa1pD,EAAEuqD,aA/iBxC,KAijBVd,WAAazpD,EAAEuqD,aAKbvqD,EAAEuqD,cAAgBvqD,EAAEwqD,gBAAuCxqD,EAAEypD,WAtjBrD,EAsjB6E,GACrFc,oBAEExC,aAEAmC,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAOnhD,EAAE+nD,SA3jB9B,EA2jBqD,MACjD/nD,EAAEonD,KAAKpnD,EAAE+nD,SAAW/nD,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SACnDF,KAAKhqD,EAAEkqD,OAASlqD,EAAE+nD,eAKQ,KAAnB/nD,EAAEuqD,gBACXxC,kBAGAA,UAAY/nD,EAAEuqD,eACdA,aAAe,IACfL,MAAQlqD,EAAEmhD,OAAOnhD,EAAE+nD,YAEnBmC,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAOnhD,EAAE+nD,SAAW,WAa1CjF,GAAU9iD,EAAG,EAAGA,EAAEmhD,OAAOnhD,EAAE+nD,aAElC0B,cACA1B,cAEAuC,OAEetqD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBAjlBS,WAulBtByC,OAAWjqD,EAAE+nD,SAAY0C,EAAkBzqD,EAAE+nD,SAAW0C,EACtDL,IAAU/D,OAEKrmD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,UAzlBW,EACA,GA8lBpBxnD,EAAE++C,cAEa/+C,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,WApmBW,EACA,GAgnBpBkD,GAAe,CAAC1qD,EAAGoqD,SAEnBC,EACAC,EAEAK,SAGK,IAMH3qD,EAAEypD,UA3oBaR,IA2oBc,OACnBjpD,GACRA,EAAEypD,UA7oBWR,KA6oBkBmB,IAAUjE,UAjoBzB,KAooBA,IAAhBnmD,EAAEypD,qBAMI,EACRzpD,EAAEypD,WAzpBQ,MA2pBVS,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAOnhD,EAAE+nD,SA3pB1B,EA2pBiD,MACjD/nD,EAAEonD,KAAKpnD,EAAE+nD,SAAW/nD,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SACnDF,KAAKhqD,EAAEkqD,OAASlqD,EAAE+nD,YAMpBe,YAAc9oD,EAAEuqD,eAChBK,WAAa5qD,EAAE0pD,cACfa,aAAeE,EAEC,IAAdJ,GAA0BrqD,EAAE8oD,YAAc9oD,EAAEwqD,gBAC5CxqD,EAAE+nD,SAAWsC,GAAcrqD,EAAEgpD,OAtqBdC,QA2qBfsB,aAAe/B,GAAcxoD,EAAGqqD,GAG9BrqD,EAAEuqD,cAAgB,MAChB9H,WAAaiD,IAjrBP,IAirBsB1lD,EAAEuqD,cAA8BvqD,EAAE+nD,SAAW/nD,EAAE0pD,YAAc,UAK3Fa,aAAeE,IAMjBzqD,EAAE8oD,aA5rBQ,GA4rBoB9oD,EAAEuqD,cAAgBvqD,EAAE8oD,YAAa,GACpD9oD,EAAE+nD,SAAW/nD,EAAEypD,UA7rBhB,IAosBH3G,GAAU9iD,EAAGA,EAAE+nD,SAAW,EAAI/nD,EAAE4qD,WAAY5qD,EAAE8oD,YApsB3C,KA0sBVW,WAAazpD,EAAE8oD,YAAc,IAC7BA,aAAe,OAET9oD,EAAE+nD,UAAY4C,MAEhBT,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAOnhD,EAAE+nD,SA/sB9B,EA+sBqD,MACjD/nD,EAAEonD,KAAKpnD,EAAE+nD,SAAW/nD,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SACnDF,KAAKhqD,EAAEkqD,OAASlqD,EAAE+nD,gBAGK,KAAlB/nD,EAAE8oD,kBACX+B,gBAAkB,IAClBN,aAAeE,IACf1C,WAEEuC,OAEetqD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBA9sBO,UAotBXxnD,EAAE6qD,sBAOF/H,GAAU9iD,EAAG,EAAGA,EAAEmhD,OAAOnhD,EAAE+nD,SAAW,IAE3CuC,MAEetqD,GAAG,KAGpB+nD,aACA0B,YACuB,IAArBzpD,EAAEmiD,KAAKqF,iBApuBS,SA2uBlBqD,gBAAkB,IAClB9C,aACA0B,mBAIFzpD,EAAE6qD,oBAGK/H,GAAU9iD,EAAG,EAAGA,EAAEmhD,OAAOnhD,EAAE+nD,SAAW,MAE7C8C,gBAAkB,KAEpBZ,OAASjqD,EAAE+nD,SAAW0C,EAAgBzqD,EAAE+nD,SAAW0C,EACjDL,IAAU/D,OAEKrmD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,UA1vBW,EACA,GA+vBpBxnD,EAAE++C,cAEa/+C,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,WArwBW,EACA,GA66B1B,YAAgBsD,EAAaC,EAAUC,EAAaC,EAAWC,QAExDJ,YAAcA,OACdC,SAAWA,OACXC,YAAcA,OACdC,UAAYA,OACZC,KAAOA,EAGd,MAAMC,GAAsB,CAE1B,IAAIC,GAAO,EAAG,EAAG,EAAG,GA5iBC,CAACprD,EAAGoqD,SAKrBiB,EAAiB,UAEjBA,EAAiBrrD,EAAEsrD,iBAAmB,MACvBtrD,EAAEsrD,iBAAmB,KAI/B,IAEHtrD,EAAEypD,WAAa,EAAG,OASRzpD,GACQ,IAAhBA,EAAEypD,WAAmBW,IAAUjE,UAraf,KAyaA,IAAhBnmD,EAAEypD,kBAQN1B,UAAY/nD,EAAEypD,YACdA,UAAY,QAGR8B,EAAYvrD,EAAE8nD,YAAcuD,MAEf,IAAfrrD,EAAE+nD,UAAkB/nD,EAAE+nD,UAAYwD,OAElC9B,UAAYzpD,EAAE+nD,SAAWwD,IACzBxD,SAAWwD,KAEIvrD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBA7bS,KAuclBxnD,EAAE+nD,SAAW/nD,EAAE8nD,aAAgB9nD,EAAEgpD,OAndlBC,SAqdAjpD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBA1cS,WAidtByC,OAAS,EAEPG,IAAU/D,OAEKrmD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,UApdW,EACA,IA0dpBxnD,EAAE+nD,SAAW/nD,EAAE8nD,iBAEA9nD,GAAG,GAChBA,EAAEmiD,KAAKqF,WAheW,MA07BxB,IAAI4D,GAAO,EAAG,EAAG,EAAG,EAAGjB,IACvB,IAAIiB,GAAO,EAAG,EAAG,GAAI,EAAGjB,IACxB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIjB,IAEzB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIV,IACzB,IAAIU,GAAO,EAAG,GAAI,GAAI,GAAIV,IAC1B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,IAC/B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,KA+BjC,mBACOvI,KAAO,UACPqJ,OAAS,OACT/N,YAAc,UACd6N,iBAAmB,OACnB5D,YAAc,OACdhK,QAAU,OACV4K,KAAO,OACPmD,OAAS,UACTC,QAAU,OACVC,OAAS7E,QACT8E,mBAEA5C,OAAS,OACT6C,OAAS,OACTzC,OAAS,OAETjI,OAAS,UAQT2I,YAAc,OAKd1C,KAAO,UAMP4C,KAAO,UAEPE,MAAQ,OACRH,UAAY,OACZ+B,UAAY,OACZxE,UAAY,OAEZD,WAAa,OAObS,YAAc,OAKdyC,aAAe,OACfK,WAAa,OACbC,gBAAkB,OAClB9C,SAAW,OACX2B,YAAc,OACdD,UAAY,OAEZX,YAAc,OAKdH,iBAAmB,OAMnB6B,eAAiB,OAYjB5uC,MAAQ,OACR6mC,SAAW,OAEX+G,WAAa,OAGbT,WAAa,OAYbtK,UAAa,IAAIsN,YAAYC,WAC7BtN,UAAa,IAAIqN,YAAa,UAC9BpN,QAAa,IAAIoN,YAAa,OAC9BntD,KAAK6/C,cACL7/C,KAAK8/C,cACL9/C,KAAK+/C,cAEL+C,OAAW,UACXE,OAAW,UACXC,QAAW,UAGX1D,SAAW,IAAI4N,YAAYE,SAI3B5M,KAAO,IAAI0M,YAAY,QACvBntD,KAAKygD,WAELE,SAAW,OACXW,SAAW,OAKX/nB,MAAQ,IAAI4zB,YAAY,QACxBntD,KAAKu5B,YAIL2nB,MAAQ,OAERiD,YAAc,OAoBdhE,SAAW,OAEXc,MAAQ,OAMRhB,QAAU,OACVC,WAAa,OACbj4C,QAAU,OACVojD,OAAS,OAGTpM,OAAS,OAITD,SAAW,EAgBlB,MAAMsO,GAAoB/J,QAEnBA,IAASA,EAAKn/C,aACV+jD,GAAI5E,EAAMsE,MAGd8B,SAAWpG,EAAKyF,UAAY,IAC5BxF,UAAY6D,SAEXjmD,EAAImiD,EAAKn/C,eACb06C,QAAU,IACVgK,YAAc,EAEZ1nD,EAAEsoD,KAAO,MACTA,MAAQtoD,EAAEsoD,QAGZkD,OAAUxrD,EAAEsoD,KAxrCG,GAKA,MAorCZnF,MAAoB,IAAXnjD,EAAEsoD,KACd,EAEA,IACAsD,WAAazF,MACNnmD,GACFumD,IAIH4F,GAAgBhK,UAEdz7C,EAAMwlD,GAAiB/J,GAnPf,IAACniD,SAoPX0G,IAAQ6/C,MApPGvmD,EAqPLmiD,EAAKn/C,OAnPb8mD,YAAc,EAAI9pD,EAAEgpD,UAGjBhpD,EAAEgqD,QAILQ,eAAiBW,GAAoBnrD,EAAE4b,OAAOmvC,WAC9CvB,WAAa2B,GAAoBnrD,EAAE4b,OAAOkvC,cAC1C/B,WAAaoC,GAAoBnrD,EAAE4b,OAAOovC,cAC1CrC,iBAAmBwC,GAAoBnrD,EAAE4b,OAAOqvC,YAEhDlD,SAAW,IACXD,YAAc,IACd2B,UAAY,IACZQ,OAAS,IACTM,aAAevqD,EAAE8oD,YAAc2B,IAC/BI,gBAAkB,IAClBX,MAAQ,GAmOHxjD,GAaH0lD,GAAe,CAACjK,EAAMvmC,EAAO+vC,EAAQU,EAAYC,EAAU7J,SAE1DN,SACIsE,OAEL6B,EAAO,KAEP1sC,IAAUgrC,OACJ,GAGNyF,EAAa,KACR,KACOA,GAGPA,EAAa,OACb,KACO,IAIZC,EAAW,GAAKA,EAxwCA,GAwwC4BX,IAAW7E,IACzDuF,EAAa,GAAKA,EAAa,IAAMzwC,EAAQ,GAAKA,EAAQ,GAC1D6mC,EAAW,GAAKA,EAAWoD,UACpBkB,GAAI5E,EAAMsE,IAIA,IAAf4F,MACW,SAITrsD,EAAI,IAAIusD,YAETvpD,MAAQhD,IACXmiD,KAAOA,IAEPmG,KAAOA,IACPmD,OAAS,OACTI,OAASQ,IACTrD,OAAS,GAAKhpD,EAAE6rD,SAChBzC,OAASppD,EAAEgpD,OAAS,IAEpB8C,UAAYQ,EAAW,IACvBvC,UAAY,GAAK/pD,EAAE8rD,YACnBxE,UAAYtnD,EAAE+pD,UAAY,IAC1B1C,iBAAmByE,UA5wCL,EA4wC6B,GA5wC7B,KA8wCd3K,OAAS,IAAIrxC,WAAsB,EAAX9P,EAAEgpD,UAC1BgB,KAAO,IAAI+B,YAAY/rD,EAAE+pD,aACzB3C,KAAO,IAAI2E,YAAY/rD,EAAEgpD,UAKzBjG,YAAc,GAAMuJ,EAAW,IAE/BhB,iBAAmC,EAAhBtrD,EAAE+iD,cAIrBtF,YAAc,IAAI3tC,WAAW9P,EAAEsrD,oBAI/BzL,MAAQ,EAAI7/C,EAAE+iD,cAGdjD,MAAS,EAAS9/C,EAAE+iD,cAEpBnnC,MAAQA,IACR6mC,SAAWA,IACXkJ,OAASA,EAEJQ,GAAahK,IAictB,IAmBIqK,GAAc,CACjBC,YAldmB,CAACtK,EAAMvmC,IAElBwwC,GAAajK,EAAMvmC,EAAOkrC,GAj0Cf,GAEE,EA+zCuDD,IAid5EuF,aApBoBA,GAqBpBD,aApBoBA,GAqBpBD,iBApBwBA,GAqBxBQ,iBA9iBwB,CAACvK,EAAM6H,IAEzB7H,GAASA,EAAKn/C,MACK,IAApBm/C,EAAKn/C,MAAMslD,KAAqB7B,MAC/BzjD,MAAMyoD,OAASzB,EACbzD,IAH4BE,GA6iBpCkG,QAjdiB,CAACxK,EAAMiI,SAEnBwC,EAAKllD,MAEJy6C,IAASA,EAAKn/C,OACjBonD,EAAQ9D,IAAa8D,EAAQ,SACtBjI,EAAO4E,GAAI5E,EAAMsE,IAAoBA,SAGxCzmD,EAAImiD,EAAKn/C,UAEVm/C,EAAKsF,SACJtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,UAjzCN,MAkzCdnoD,EAAEwrD,QAA2BpB,IAAU/D,UACnCU,GAAI5E,EAA0B,IAAnBA,EAAKqF,UAAmBb,GAAgBF,MAG1DtE,KAAOA,QACH0K,EAAY7sD,EAAE4rD,gBAClBA,WAAaxB,EA9zCE,KAi0CbpqD,EAAEwrD,UAEW,IAAXxrD,EAAEsoD,OACCnF,MAAQ,KACJnjD,EAAG,OACHA,EAAG,QACHA,EAAG,GACPA,EAAEyrD,WAaIzrD,KAAMyrD,OAAO/9B,KAAO,EAAI,MAClB+9B,OAAOqB,KAAO,EAAI,IACnB9sD,EAAEyrD,OAAO9hC,MAAY,EAAJ,IACjB3pB,EAAEyrD,OAAO/mD,KAAW,EAAJ,IAChB1E,EAAEyrD,OAAOsB,QAAc,GAAJ,OAExB/sD,EAAmB,IAAhBA,EAAEyrD,OAAOuB,SACZhtD,EAAIA,EAAEyrD,OAAOuB,MAAQ,EAAK,QAC1BhtD,EAAIA,EAAEyrD,OAAOuB,MAAQ,GAAM,QAC3BhtD,EAAIA,EAAEyrD,OAAOuB,MAAQ,GAAM,QAC3BhtD,EAAe,IAAZA,EAAE4b,MAAc,EACf5b,EAAEyiD,UAAYkD,IAAkB3lD,EAAE4b,MAAQ,EAC1C,EAAI,MACR5b,EAAiB,IAAdA,EAAEyrD,OAAOwB,IACjBjtD,EAAEyrD,OAAO9hC,OAAS3pB,EAAEyrD,OAAO9hC,MAAMnsB,YAC1BwC,EAA2B,IAAxBA,EAAEyrD,OAAO9hC,MAAMnsB,WAClBwC,EAAIA,EAAEyrD,OAAO9hC,MAAMnsB,QAAU,EAAK,MAEzCwC,EAAEyrD,OAAOqB,SACN3J,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAS,MAE3DgO,QAAU,IACVF,OA12CU,QAw0CHxrD,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAe,IAAZA,EAAE4b,MAAc,EACf5b,EAAEyiD,UAAYkD,IAAkB3lD,EAAE4b,MAAQ,EAC1C,EAAI,MACR5b,EAp0CD,KAq0CNwrD,OA70CS,SA02Cf,KACMtK,EAAU4F,MAAmB+E,OAAS,GAAM,IAAO,EACnDqB,OAEAltD,EAAEyiD,UAAYkD,IAAkB3lD,EAAE4b,MAAQ,EAC9B,EACL5b,EAAE4b,MAAQ,EACL,EACO,IAAZ5b,EAAE4b,MACG,EAEA,KAELsxC,GAAe,EACP,IAAfltD,EAAE+nD,cA/3CQ,OAg4CJ,GAAM7G,EAAS,KAEvBsK,OA33CW,OA43CDxrD,EAAGkhD,GAGI,IAAflhD,EAAE+nD,cACQ/nD,EAAGmiD,EAAKgB,QAAU,OAClBnjD,EAAgB,MAAbmiD,EAAKgB,UAEjBA,MAAQ,KAv4CC,KA44CdnjD,EAAEwrD,UACAxrD,EAAEyrD,OAAO9hC,MAAqB,OAC1B3pB,EAAE09C,QAED19C,EAAE0rD,SAAmC,QAAtBD,OAAO9hC,MAAMnsB,UAC7BwC,EAAE09C,UAAY19C,EAAEsrD,mBACdtrD,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,OAErDzK,KACRniD,EAAE09C,QACJ19C,EAAE09C,UAAY19C,EAAEsrD,uBAIbtrD,EAA+B,IAA5BA,EAAEyrD,OAAO9hC,MAAM3pB,EAAE0rD,YAC3BA,UAEA1rD,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,IAE/D5sD,EAAE0rD,UAAY1rD,EAAEyrD,OAAO9hC,MAAMnsB,WAC7BkuD,QAAU,IACVF,OAl6CS,WAs6CXA,OAt6CW,MAAA,KAy6CbxrD,EAAEwrD,UACAxrD,EAAEyrD,OAAO/mD,KAAoB,GACzB1E,EAAE09C,UAGL,IACG19C,EAAE09C,UAAY19C,EAAEsrD,mBACdtrD,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,OAErDzK,KACRniD,EAAE09C,QACJ19C,EAAE09C,UAAY19C,EAAEsrD,kBAAkB,GAC9B,UAKNtrD,EAAE0rD,QAAU1rD,EAAEyrD,OAAO/mD,KAAKlH,OACkB,IAAxCwC,EAAEyrD,OAAO/mD,KAAKyoD,WAAWntD,EAAE0rD,WAE3B,KAEC1rD,EAAG0H,SACG,IAARA,GAEL1H,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,IAEvD,IAARllD,MACAgkD,QAAU,IACVF,OAv8CY,WA28CdA,OA38Cc,MAAA,KA88ChBxrD,EAAEwrD,UACAxrD,EAAEyrD,OAAOsB,QAAuB,GAC5B/sD,EAAE09C,UAGL,IACG19C,EAAE09C,UAAY19C,EAAEsrD,mBACdtrD,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,OAErDzK,KACRniD,EAAE09C,QACJ19C,EAAE09C,UAAY19C,EAAEsrD,kBAAkB,GAC9B,UAKNtrD,EAAE0rD,QAAU1rD,EAAEyrD,OAAOsB,QAAQvvD,OACkB,IAA3CwC,EAAEyrD,OAAOsB,QAAQI,WAAWntD,EAAE0rD,WAE9B,KAEC1rD,EAAG0H,SACG,IAARA,GAEL1H,EAAEyrD,OAAOqB,MAAQ9sD,EAAE09C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnjD,EAAEy9C,YAAaz9C,EAAE09C,QAAUkP,EAAKA,IAEvD,IAARllD,MACA8jD,OA3+CS,YA++CXA,OA/+CW,OAAA,MAk/CbxrD,EAAEwrD,SACAxrD,EAAEyrD,OAAOqB,MACP9sD,EAAE09C,QAAU,EAAI19C,EAAEsrD,qBACNnJ,GAEZniD,EAAE09C,QAAU,GAAK19C,EAAEsrD,sBACZtrD,EAAgB,IAAbmiD,EAAKgB,UACRnjD,EAAImiD,EAAKgB,OAAS,EAAK,OAC3BA,MAAQ,IACXqI,OA1/CS,QA8/CXA,OA9/CW,KAogDC,IAAdxrD,EAAE09C,eACUyE,GACS,IAAnBA,EAAKqF,mBAOLoE,cACKrF,WAOkB,IAAlBpE,EAAKgG,UAAkBtgD,GAAKuiD,IAAUviD,GAAKglD,IACpDzC,IAAU/D,UACHU,GAAI5E,EAAMwE,OAthDA,MA0hDf3mD,EAAEwrD,QAA6C,IAAlBrJ,EAAKgG,gBAC7BpB,GAAI5E,EAAMwE,OAKG,IAAlBxE,EAAKgG,UAAkC,IAAhBnoD,EAAEypD,WAC1BW,IAAUjE,IAjiDM,MAiiDUnmD,EAAEwrD,OAA0B,KACnD4B,EAAUptD,EAAEyiD,WAAakD,GA5qBZ,EAAC3lD,EAAGoqD,SAEnBE,SAEK,IAEa,IAAhBtqD,EAAEypD,eACQzpD,GACQ,IAAhBA,EAAEypD,WAAiB,IACjBW,IAAUjE,UA73BI,aAq4BpBoE,aAAe,IAGRzH,GAAU9iD,EAAG,EAAGA,EAAEmhD,OAAOnhD,EAAE+nD,aAClC0B,cACA1B,WACEuC,OAEetqD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBA94BS,WAo5BtByC,OAAS,EACPG,IAAU/D,OAEKrmD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,UAt5BW,EACA,GA25BpBxnD,EAAE++C,cAEa/+C,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,WAj6BW,EACA,GA+hDyB6F,CAAartD,EAAGoqD,GAC5DpqD,EAAEyiD,WAAamD,GA7wBF,EAAC5lD,EAAGoqD,SAElBE,EACAlD,EACAwB,EAAMS,QAEJH,EAAOlpD,EAAEmhD,cAEN,IAKHnhD,EAAEypD,WA9yBQ,IA8yBgB,OAChBzpD,GACRA,EAAEypD,WAhzBM,KAgzBoBW,IAAUjE,UAnyBtB,KAsyBA,IAAhBnmD,EAAEypD,qBAINc,aAAe,EACbvqD,EAAEypD,WAzzBQ,GAyzBkBzpD,EAAE+nD,SAAW,MACpC/nD,EAAE+nD,SAAW,IACbmB,EAAKN,GACRxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAAO,GAClE5oD,EAAE+nD,SA5zBD,cA+zBDX,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCA,EAAOS,KACdkB,aAp0BQ,OAo0B6B3B,GACnC5oD,EAAEuqD,aAAevqD,EAAEypD,cACnBc,aAAevqD,EAAEypD,cAOrBzpD,EAAEuqD,cA90BQ,KAk1BHzH,GAAU9iD,EAAG,EAAGA,EAAEuqD,aAl1Bf,KAo1BVd,WAAazpD,EAAEuqD,eACfxC,UAAY/nD,EAAEuqD,eACdA,aAAe,MAKRzH,GAAU9iD,EAAG,EAAGA,EAAEmhD,OAAOnhD,EAAE+nD,aAElC0B,cACA1B,YAEAuC,OAEetqD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,kBAr1BS,WA21BtByC,OAAS,EACPG,IAAU/D,OAEKrmD,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,UA71BW,EACA,GAk2BpBxnD,EAAE++C,cAEa/+C,GAAG,GACK,IAArBA,EAAEmiD,KAAKqF,WAx2BW,EACA,GAgiDI8F,CAAYttD,EAAGoqD,GACrCe,GAAoBnrD,EAAE4b,OAAOsvC,KAAKlrD,EAAGoqD,MAhiDnB,IAkiDlBgD,GAjiDkB,IAiiDcA,MAChC5B,OAviDa,KAEK,IAuiDlB4B,GAriDkB,IAqiDSA,SACN,IAAnBjL,EAAKqF,cACLoE,eAGGrF,MA3iDa,IAojDlB6G,IACEhD,IAAU5F,MACFxkD,GAEHoqD,IAAU9D,QAEAtmD,EAAG,EAAG,GAAG,GAItBoqD,IAAUhE,QAEPpmD,EAAEgqD,MAEa,IAAhBhqD,EAAEypD,cACF1B,SAAW,IACXD,YAAc,IACdmC,OAAS,QAIH9H,GACS,IAAnBA,EAAKqF,oBACLoE,cACKrF,UAOT6D,IAAU/D,GAAqBE,GAC/BvmD,EAAEsoD,MAAQ,EAAY9B,IAGX,IAAXxmD,EAAEsoD,SACKtoD,EAAgB,IAAbmiD,EAAKgB,UACRnjD,EAAImiD,EAAKgB,OAAS,EAAK,QACvBnjD,EAAImiD,EAAKgB,OAAS,GAAM,QACxBnjD,EAAImiD,EAAKgB,OAAS,GAAM,QACxBnjD,EAAmB,IAAhBmiD,EAAKoG,aACRvoD,EAAImiD,EAAKoG,UAAY,EAAK,QAC1BvoD,EAAImiD,EAAKoG,UAAY,GAAM,QAC3BvoD,EAAImiD,EAAKoG,UAAY,GAAM,UAIxBvoD,EAAGmiD,EAAKgB,QAAU,OAClBnjD,EAAgB,MAAbmiD,EAAKgB,WAGRhB,GAIVniD,EAAEsoD,KAAO,MAAOA,MAAQtoD,EAAEsoD,MAET,IAAdtoD,EAAE09C,QAAgB6I,GAASC,KAuInC+G,WAnImBpL,QAEbA,IAAsBA,EAAKn/C,aACvByjD,SAGH+E,EAASrJ,EAAKn/C,MAAMwoD,cAhoDT,KAioDbA,GAhoDc,KAioDhBA,GAhoDe,KAioDfA,GAhoDkB,KAioDlBA,GAhoDe,MAioDfA,GAhoDe,MAioDfA,GAhoDiB,MAioDjBA,EAEOzE,GAAI5E,EAAMsE,OAGdzjD,MAAQ,KAvoDI,MAyoDVwoD,EAAwBzE,GAAI5E,EAAMuE,IAAkBH,KAgH5DiH,qBAxG4B,CAACrL,EAAMsL,SAE9BC,EAAaD,EAAWjwD,WAEvB2kD,IAAsBA,EAAKn/C,aACvByjD,SAGHzmD,EAAImiD,EAAKn/C,MACTslD,EAAOtoD,EAAEsoD,QAEF,IAATA,GAAwB,IAATA,GAjqDF,KAiqDgBtoD,EAAEwrD,QAA0BxrD,EAAEypD,iBACtDhD,MAII,IAAT6B,MAEGnF,MAAQD,GAAUf,EAAKgB,MAAOsK,EAAYC,EAAY,MAG3DpF,KAAO,EAGLoF,GAAc1tD,EAAEgpD,OAAQ,CACb,IAATV,OAEGtoD,EAAEgqD,QACLjC,SAAW,IACXD,YAAc,IACdmC,OAAS,OAIT0D,EAAU,IAAI79C,WAAW9P,EAAEgpD,UACvBt6C,IAAI++C,EAAWrM,SAASsM,EAAa1tD,EAAEgpD,OAAQ0E,GAAa,KACvDC,IACA3tD,EAAEgpD,aAGX4E,EAAQzL,EAAKgG,SACb0F,EAAO1L,EAAKkG,QACZD,EAAQjG,EAAKiG,YACdD,SAAWuF,IACXrF,QAAU,IACVD,MAAQqF,KACDztD,GACLA,EAAEypD,WA3sDO,GA2sDiB,KAC3Bn6C,EAAMtP,EAAE+nD,SACRlrD,EAAImD,EAAEypD,UAAa,OAGnBS,MAAQ/C,GAAKnnD,EAAGA,EAAEkqD,MAAOlqD,EAAEmhD,OAAO7xC,EAhtDxB,EAgtD0C,MAEpD83C,KAAK93C,EAAMtP,EAAEopD,QAAUppD,EAAEgqD,KAAKhqD,EAAEkqD,SAEhCF,KAAKhqD,EAAEkqD,OAAS56C,cAETzS,KACTkrD,SAAWz4C,IACXm6C,UAAYgB,KACFzqD,YAEZ+nD,UAAY/nD,EAAEypD,YACd3B,YAAc9nD,EAAE+nD,WAChBkC,OAASjqD,EAAEypD,YACXA,UAAY,IACZc,aAAevqD,EAAE8oD,YAAc2B,IAC/BI,gBAAkB,IACfxC,QAAUwF,IACVzF,MAAQA,IACRD,SAAWyF,IACdtF,KAAOA,EACF/B,IAgCRuH,YApBiB,sCAuBlB,MAAMC,GAAO,CAACznD,EAAKvI,IACV0M,OAAO9H,UAAU4X,eAAejW,KAAKgC,EAAKvI,GAGnD,IA0CIiwD,GA1CS,SAAU1nD,SACf2nD,EAAUttD,MAAMgC,UAAUf,MAAM0C,KAAKhH,UAAW,QAC/C2wD,EAAQzwD,QAAQ,OACfssB,EAASmkC,EAAQr/C,WAClBkb,MAEiB,iBAAXA,QACH,IAAIokC,UAAUpkC,EAAS,gCAGpB3pB,KAAK2pB,EACVikC,GAAKjkC,EAAQ3pB,OACXA,GAAK2pB,EAAO3pB,YAKfmG,GAyBL0nD,GApBiBG,QAEfvS,EAAM,UAED1+C,EAAI,EAAGJ,EAAIqxD,EAAO3wD,OAAQN,EAAIJ,EAAGI,OACjCixD,EAAOjxD,GAAGM,aAIbivB,EAAS,IAAI3c,WAAW8rC,WAErB1+C,EAAI,EAAGkmD,EAAM,EAAGtmD,EAAIqxD,EAAO3wD,OAAQN,EAAIJ,EAAGI,IAAK,KAClDkxD,EAAQD,EAAOjxD,KACZwR,IAAI0/C,EAAOhL,MACXgL,EAAM5wD,cAGRivB,GAgBT,IAAI4hC,IAAmB,EAEvB,WAAaC,aAAaC,MAAM,KAAM,IAAIz+C,WAAW,UAAc5R,QAAyB,EAM5F,MAAMswD,GAAW,IAAI1+C,WAAW,KAChC,QAAS2+C,GAAI,EAAGA,GAAI,IAAKA,QACdA,IAAMA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAI,EAE5FD,GAAS,KAAOA,GAAS,KAAO,EAiFhC,IAyEIE,GAtJcp/C,OACW,mBAAhBq/C,aAA8BA,YAAYhsD,UAAUisD,cACtD,IAAID,aAAcC,OAAOt/C,OAG9BqsC,EAAK57C,EAAG8uD,EAAIC,EAAO5xD,EAAG6xD,EAAUz/C,EAAI9R,OAAQwxD,EAAU,MAGrDF,EAAQ,EAAGA,EAAQC,EAASD,MAC3Bx/C,EAAI69C,WAAW2B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCz/C,EAAI69C,WAAW2B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,gBAIpC/uD,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,QAIxD,IAAI+P,WAAWk/C,GAGhB9xD,EAAI,EAAG4xD,EAAQ,EAAG5xD,EAAI8xD,EAASF,MAC9Bx/C,EAAI69C,WAAW2B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCz/C,EAAI69C,WAAW2B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,aAI3C/uD,EAAI,MAEF7C,KAAO6C,EACFA,EAAI,QAET7C,KAAO,IAAQ6C,IAAM,IACrB7C,KAAO,IAAY,GAAJ6C,GACVA,EAAI,SAET7C,KAAO,IAAQ6C,IAAM,KACrB7C,KAAO,IAAQ6C,IAAM,EAAI,KACzB7C,KAAO,IAAY,GAAJ6C,MAGf7C,KAAO,IAAQ6C,IAAM,KACrB7C,KAAO,IAAQ6C,IAAM,GAAK,KAC1B7C,KAAO,IAAQ6C,IAAM,EAAI,KACzB7C,KAAO,IAAY,GAAJ6C,UAIhB47C,GAgGL+S,GAzEa,CAAC/S,EAAKz0C,WACf00C,EAAM10C,GAAOy0C,EAAIn+C,UAEI,mBAAhByxD,aAA8BA,YAAYtsD,UAAUusD,cACtD,IAAID,aAAcC,OAAOvT,EAAIyF,SAAS,EAAGl6C,QAG9ChK,EAAGiyD,QAKDC,EAAW,IAAIzuD,MAAY,EAANi7C,OAEtBuT,EAAM,EAAGjyD,EAAI,EAAGA,EAAI0+C,GAAM,KACzB77C,EAAI47C,EAAIz+C,QAER6C,EAAI,IAAM,GAAWovD,KAASpvD,eAE9BsvD,EAAQb,GAASzuD,MAEjBsvD,EAAQ,IAAcF,KAAS,SAAaE,EAAQ,cAGzC,IAAVA,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKnyD,EAAI0+C,KACjB77C,GAAK,EAAiB,GAAX47C,EAAIz+C,SAKlBmyD,EAAQ,IAAcF,KAAS,MAE/BpvD,EAAI,QACGovD,KAASpvD,MAEb,QACIovD,KAAS,MAAWpvD,GAAK,GAAM,OAC/BovD,KAAS,MAAc,KAAJpvD,UA1DZ,EAAC47C,EAAKC,QAItBA,EAAM,OACJD,EAAIyF,UAAYiN,UACXvkD,OAAOwkD,aAAaC,MAAM,KAAM5S,EAAIn+C,SAAWo+C,EAAMD,EAAMA,EAAIyF,SAAS,EAAGxF,QAIlFnvB,EAAS,WACJvvB,EAAI,EAAGA,EAAI0+C,EAAK1+C,OACb4M,OAAOwkD,aAAa3S,EAAIz+C,WAE7BuvB,GAgDA6iC,CAAcF,EAAUD,IA8B7BT,GApBa,CAAC/S,EAAKz0C,QAEfA,GAAOy0C,EAAIn+C,QACPm+C,EAAIn+C,WAAgBm+C,EAAIn+C,YAG9B4lD,EAAMl8C,EAAM,OACTk8C,GAAO,GAA2B,MAAV,MAAPA,gBAIpBA,EAAM,GAIE,IAARA,EAJkBl8C,EAMdk8C,EAAMoL,GAAS7S,EAAIyH,IAAQl8C,EAAOk8C,EAAMl8C,GAqDlD,IAAIqoD,GAzBJ,gBAEOnH,MAAQ,UACRC,QAAU,OAEVF,SAAW,OAEXI,SAAW,OAEXd,OAAS,UACTE,SAAW,OAEXH,UAAY,OAEZI,UAAY,OAEZX,IAAM,QAENjkD,MAAQ,UAERo/C,UAAY,OAEZe,MAAQ,GAKf,MAAMqM,GAAa/kD,OAAO9H,UAAUgN,UAMlC40C,WAAYkL,gBAAchL,gBAAcC,GAAcC,SAAU+K,GAChE5K,KAAM6K,GAAQ5K,aAAc6K,yBAC5BnK,sBACAK,GACAI,WAAY2J,IACVvL,GA0FJ,YAAmB9zC,QACZA,QAAUw9C,GAAc,CAC3BpyC,MAAO6pC,GACPkG,OAAQkE,GACRC,UAAW,MACXzD,WAAY,GACZC,SAAU,EACV7J,SAAUqD,IACTt1C,GAAW,QAEVu/C,EAAMnxD,KAAK4R,QAEXu/C,EAAIC,KAAQD,EAAI1D,WAAa,IAC3BA,YAAc0D,EAAI1D,WAGf0D,EAAIE,MAASF,EAAI1D,WAAa,GAAO0D,EAAI1D,WAAa,OACzDA,YAAc,SAGftF,IAAS,OACTE,IAAS,QACTiJ,OAAS,OACT/B,OAAS,QAEThM,KAAO,IAAIoN,QACXpN,KAAKqF,UAAY,MAElBgE,EAASgB,GAAYJ,aACvBxtD,KAAKujD,KACL4N,EAAIn0C,MACJm0C,EAAIpE,OACJoE,EAAI1D,WACJ0D,EAAIzD,SACJyD,EAAItN,aAGF+I,IAAWmE,SACP,IAAIQ,MAAMvM,GAAS4H,OAGvBuE,EAAI7O,WACMwL,iBAAiB9tD,KAAKujD,KAAM4N,EAAI7O,QAG1C6O,EAAItC,WAAY,KACd2C,OAE0B,iBAAnBL,EAAItC,WAENiB,GAAmBqB,EAAItC,YACe,yBAApC+B,GAAWlrD,KAAKyrD,EAAItC,YACtB,IAAI39C,WAAWigD,EAAItC,YAEnBsC,EAAItC,aAGJjB,GAAYgB,qBAAqB5uD,KAAKujD,KAAMiO,GAEjD5E,IAAWmE,SACP,IAAIQ,MAAMvM,GAAS4H,SAGtB6E,WAAY,GA0BrBC,GAAU3tD,UAAUlF,KAAO,SAAU4G,EAAMksD,SACnCpO,EAAOvjD,KAAKujD,KACZ2N,EAAYlxD,KAAK4R,QAAQs/C,cAC3BtE,EAAQgF,KAER5xD,KAAKsxD,aAAgB,QAErBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAATprD,IAEJ+jD,MAAQsG,GAAmBrqD,GACG,yBAA1BmrD,GAAWlrD,KAAKD,KACpB+jD,MAAQ,IAAIt4C,WAAWzL,KAEvB+jD,MAAQ/jD,IAGVgkD,QAAU,IACVF,SAAWhG,EAAKiG,MAAM5qD,YAGF,IAAnB2kD,EAAKqF,cACFC,OAAS,IAAI33C,WAAWggD,KACxBnI,SAAW,IACXH,UAAYsI,QAIErL,IAAgB+L,IAAgB9L,KAAiBvC,EAAKqF,WAAa,OACjFiJ,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,YAIVgF,GAAYG,QAAQxK,EAAMqO,GAG/BhF,IAAWoE,UACTzN,EAAKwF,SAAW,QACb8I,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aAElC6E,GAAYe,WAAW3uD,KAAKujD,WAChCuO,MAAMlF,QACN0E,OAAQ,EACN1E,IAAWmE,MAIG,IAAnBxN,EAAKqF,cAMLgJ,EAAc,GAAKrO,EAAKwF,SAAW,OAChC8I,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,UAIG,IAAlBrF,EAAKgG,yBAXFsI,OAAOtO,EAAKsF,eAcd,GAWT6I,GAAU3tD,UAAU8tD,OAAS,SAAUrC,QAChCD,OAAO1wD,KAAK2wD,IAanBkC,GAAU3tD,UAAU+tD,MAAQ,SAAUlF,GAEhCA,IAAWmE,UACRljC,OAASuhC,GAAqBpvD,KAAKuvD,cAErCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAMroD,KAAKujD,KAAK8E,KAsJvB,IAAI0J,GAAU,SAAsBxO,EAAMj1C,OACpC0jD,EACA1+C,EACA2+C,EACAjE,EACAn/C,EAEAqjD,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACA7S,EACA8S,EACAC,EACAC,EACAC,EACAC,EACAtnC,EAEA0xB,EACA2B,EACAttC,EACAwhD,EAGArJ,EAAOX,QAGLzkD,EAAQm/C,EAAKn/C,QAEbm/C,EAAKkG,UACHlG,EAAKiG,QACNwI,KAAYzI,SAAW,KACvBhG,EAAKwF,WACHxF,EAAKsF,SACRoJ,KAAgB1O,EAAKqF,aACrBqJ,KAAarJ,UAAY,OAExBxkD,EAAM8tD,OAEL9tD,EAAM+tD,QACN/tD,EAAMguD,QACNhuD,EAAMiuD,QACHjuD,EAAMm+C,SACVn+C,EAAMmuD,OACNnuD,EAAMs7C,OACLt7C,EAAM0uD,UACN1uD,EAAM2uD,eACA3uD,EAAM4uD,SAAW,QACjB5uD,EAAM6uD,UAAY,MAO7B,CACGvT,EAAO,QACD8J,EAAMwI,MAAUtS,KAChB,KACA8J,EAAMwI,MAAUtS,KAChB,KAGH8S,EAAMD,EAAOG,YAGX,MACFE,IAAS,QACJtnC,KACFA,IACFsnC,IAAS,GAAM,IACV,IAAPtnC,IAIK2mC,KAAiB,MAAPW,YAEL,GAALtnC,OAwKc,IAAR,MAAW,GACjBknC,GAAc,gBAAqClnC,GAAM,kBAGpD,GAALA,EAAS,GAEV4nC,KArSC,aAySF7K,IAAM,gCACL6K,KA3SA,aAyHO,MAAPN,KACA,GACFtnC,IACEo0B,EAAOp0B,OACDk+B,EAAMwI,MAAUtS,KAChB,MAEH6S,MAAcjnC,GAAM,OACjBA,KACFA,GAGNo0B,EAAO,QACD8J,EAAMwI,MAAUtS,KAChB,KACA8J,EAAMwI,MAAUtS,KAChB,KAEH+S,EAAMF,EAAOI,YAGX,MACFC,IAAS,QACJtnC,KACFA,IACFsnC,IAAS,GAAM,MAEZ,GAALtnC,OA+HmB,IAAR,MAAW,GACjBmnC,GAAc,gBAAqCnnC,GAAM,iBAI3D+8B,IAAM,0BACL6K,KAzRJ,gBAqJY,MAAPN,KACD,GACFlT,EAAOp0B,OACDk+B,EAAMwI,MAAUtS,KAChB,EACJA,EAAOp0B,OACDk+B,EAAMwI,MAAUtS,KAChB,OAGJ6S,MAAcjnC,GAAM,EAExBqzB,EAAOuT,EAAM,GACV7J,IAAM,kCACL6K,KAnKN,mBAuKQ5nC,KACFA,IAEH2mC,EAAOjE,EACRrP,EAAOrzB,EAAI,MACRqzB,EAAOrzB,EACRA,EAAK8mC,GACHhuD,EAAM+uD,KAAM,GACT9K,IAAM,kCACL6K,KAhLV,gBA0MO,IACOZ,EACA,IAAVD,SACMF,EAAQ7mC,EACZA,EAAK0xB,EAAK,IACL1xB,OAEE2mC,KAAUK,EAASjhD,aACjBia,KACJ2mC,EAAOtT,IACAkK,WAGTwJ,EAAQ/mC,SACP6mC,EAAQE,EAAQ/mC,KAClB+mC,EACF/mC,EAAK0xB,EAAK,IACL1xB,OAEE2mC,KAAUK,EAASjhD,aACjBia,QACJ,EACH+mC,EAAQrV,EAAK,GACVqV,KACE/mC,OAEE2mC,KAAUK,EAASjhD,aACjBia,KACJ2mC,EAAOtT,IACAkK,eAKVwJ,EAAQ/mC,EACZA,EAAK0xB,EAAK,IACL1xB,OAEE2mC,KAAUK,EAASjhD,aACjBia,KACJ2mC,EAAOtT,IACAkK,OAGX7L,EAAM,KACJiV,KAAUY,EAAYxhD,OACtB4gD,KAAUY,EAAYxhD,OACtB4gD,KAAUY,EAAYxhD,QACtB,EAEL2rC,MACKiV,KAAUY,EAAYxhD,KACzB2rC,EAAM,MACDiV,KAAUY,EAAYxhD,WAI9B,GACI4gD,EAAOtT,OAELsT,KAAUpJ,EAAOx3C,OACjB4gD,KAAUpJ,EAAOx3C,OACjB4gD,KAAUpJ,EAAOx3C,QACjB,QACA2rC,EAAM,GACXA,MACKiV,KAAUpJ,EAAOx3C,KACpB2rC,EAAM,MACDiV,KAAUpJ,EAAOx3C,2BAmC/B2gD,EAAM1+C,GAAQ2+C,EAAOpjD,KAGxB6wC,GAAQ,KACP1C,KACCA,GAAO,SACD0C,GAAQ,IAGjB+J,QAAUuI,IACVjJ,SAAWkJ,IACX1I,SAAYyI,EAAM1+C,IAAmB0+C,EAAZ,EAAmB,KAAW1+C,KACvDs1C,UAAaqJ,EAAOpjD,IAAmBojD,EAAb,IAAqB,OAAcpjD,KAC5D0jD,KAAOA,IACP7S,KAAOA,GAuBf,MASM0T,GAAQ,IAAIjG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAGzDkG,GAAO,IAAIniD,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGpDoiD,GAAQ,IAAInG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,IAG1BoG,GAAO,IAAIriD,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,KAsStB,IAAIsiD,GAnSkB,CAACv0D,EAAMw0D,EAAMC,EAAYC,EAAO/O,EAAOgP,EAAaC,EAAMhsD,WAExE63C,EAAO73C,EAAK63C,SAYdoU,EACAC,EACAC,EACAC,EACAhF,EAIApgD,EAjBAmuC,EAAM,EACNkX,EAAM,EACN7+C,EAAM,EAAG/M,EAAM,EACf6rD,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMPp0D,EAAO,KACPq0D,EAAa,QAGX90C,EAAQ,IAAIwtC,YAAYuH,IACxBC,EAAO,IAAIxH,YAAYuH,QAIzBE,EAAWC,EAASC,EAHpB/pC,EAAQ,KACRgqC,EAAc,MAoCb/X,EAAM,EAAGA,GA7FA,GA6FgBA,MACtBA,GAAO,MAEVkX,EAAM,EAAGA,EAAMP,EAAOO,MACnBT,EAAKC,EAAaQ,YAInBxU,EACFp3C,EAtGS,GAsGMA,GAAO,GACN,IAAfqX,EAAMrX,GADkBA,QAG1B6rD,EAAO7rD,MACFA,GAEG,IAARA,WAIIsrD,KAAkB,WAMlBA,KAAkB,WAEnBlU,KAAO,EACL,MAEJrqC,EAAM,EAAGA,EAAM/M,GACC,IAAfqX,EAAMtK,GADaA,SAGrB8+C,EAAO9+C,MACFA,KAIF,EACF2nC,EAAM,EAAGA,GApIA,GAoIgBA,WACnB,KACDr9B,EAAMq9B,GACVsX,EAAO,cAITA,EAAO,IAtIG,OAsI+B,IAARhsD,kBAKhC,GAAK,EACL00C,EAAM,EAAGA,EAjJA,GAiJeA,MACtBA,EAAM,GAAK2X,EAAK3X,GAAOr9B,EAAMq9B,OAI/BkX,EAAM,EAAGA,EAAMP,EAAOO,IACM,IAA3BT,EAAKC,EAAaQ,OACfS,EAAKlB,EAAKC,EAAaQ,OAAWA,MAnJ7B,IAyLVj1D,KACK8rB,EAAQ8oC,IACT,IA1LK,IA4LF50D,KACFm0D,MACO,MACNC,MACO,MACT,QAGCC,KACCC,WAKH,IACD,IACAl+C,IACCu+C,IACAO,IACA,SAEA,GAAKA,IACLI,EAAO,EAlND,IAqNRt1D,GAAmBs1D,EA1NJ,KAMN,IAqNXt1D,GAAoBs1D,EA1NF,WA2NZ,SAIA,GAEKvX,EAAMqX,EACdR,EAAKK,GAAOrlD,KACJ,IACCglD,EAAKK,IAETL,EAAKK,GAAOrlD,KACTkc,EAAMgqC,EAAclB,EAAKK,MACxB9zD,EAAKq0D,EAAaZ,EAAKK,QAGxB,KACC,KAIN,GAAMlX,EAAMqX,IACZ,GAAKD,IACNL,QAEID,IACF7E,MAAgBoF,GAAQN,GAASa,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATf,SAGF,GAAM/W,EAAM,EACZwX,EAAOV,OACH,KAEE,IAATA,MACMA,EAAO,KACPA,KAED,MAKY,KAAfn0C,EAAMq9B,GAAY,IAClBA,IAAQ10C,UACNmrD,EAAKC,EAAaG,EAAKK,OAI3BlX,EAAMmX,MAAgBF,KAAUD,EAAK,KAE1B,IAATK,MACKF,MAID9+C,IAGD2nC,EAAMqX,IACN,GAAKD,EACLA,EAAOC,EAAO/rD,OACXqX,EAAMy0C,EAAOC,KACjBC,GAAQ,aAEH,QAIH,GAAKF,EA5RJ,IA6RJn1D,GAAmBs1D,EAlSR,KAMN,IA6RPt1D,GAAoBs1D,EAlSN,WAmSR,IAIHC,EAAOP,IAIPD,GAAQG,GAAQ,GAAOC,GAAQ,GAAOnF,EAAO2E,EAAc,UAOxD,IAATY,MAIIvF,EAAOuF,GAAUxX,EAAMqX,GAAS,GAAO,IAAM,GAAK,KAKrD3U,KAAOyU,EACL,GA8BT,MAQEpO,SAAUiP,WAAYhP,WAASC,GAC/BC,KAAM+O,GAAQ9O,aAAc+O,GAAgB9O,YAAa+O,GAAe7O,eAAgB8O,GAAkB7O,aAAc8O,GAAgB7O,YAAa8O,eAAe7O,cACpKa,IACE5B,GAqDE6P,GAAW1F,QAEE,GAAM,UACP,EAAK,SACP,UAAW,KACX,QAAS,IAIzB,mBACOqD,KAAO,OACP5/C,MAAO,OACPo2C,KAAO,OACP8L,UAAW,OACX7sD,MAAQ,OACRupD,KAAO,OACPuD,MAAQ,OACRC,MAAQ,OAERtK,KAAO,UAGPuK,MAAQ,OACRxD,MAAQ,OACRC,MAAQ,OACRC,MAAQ,OACR9P,OAAS,UAGTgQ,KAAO,OACP7S,KAAO,OAGP9gD,OAAS,OACT6Q,OAAS,OAGTsb,MAAQ,OAGR+nC,QAAU,UACVC,SAAW,UACXC,QAAU,OACVC,SAAW,OAGX2C,MAAQ,OACRC,KAAO,OACPC,MAAQ,OACRC,KAAO,OACP9G,KAAO,UAEPwE,KAAO,IAAItG,YAAY,UACvB0G,KAAO,IAAI1G,YAAY,UAOvB6I,OAAS,UACTC,QAAU,UACV9C,KAAO,OACP+C,KAAO,OACPC,IAAM,EAIb,MAAMC,GAAoB7S,QAEnBA,IAASA,EAAKn/C,aAAgBgxD,SAC7BhxD,EAAQm/C,EAAKn/C,eACdulD,SAAWpG,EAAKyF,UAAY5kD,EAAMsxD,MAAQ,IAC1CrN,IAAM,GACPjkD,EAAMslD,SACHnF,MAAqB,EAAbngD,EAAMslD,QAEfwJ,KA3HQ,IA4HR5/C,KAAO,IACPkiD,SAAW,IACXtD,KAAO,QACP9G,KAAO,OACPmH,KAAO,IACP7S,KAAO,IAEPoT,QAAU1uD,EAAM4xD,OAAS,IAAIK,WA9FjB,OA+FZtD,SAAW3uD,EAAM6xD,QAAU,IAAII,WA9FlB,OAgGblD,KAAO,IACP+C,QAECjB,IAIHqB,GAAgB/S,QAEfA,IAASA,EAAKn/C,aAAgBgxD,SAC7BhxD,EAAQm/C,EAAKn/C,eACb+tD,MAAQ,IACRC,MAAQ,IACRC,MAAQ,EACP+D,GAAiB7S,IAKpBgT,GAAgB,CAAChT,EAAMkK,SACvB/D,MAGCnG,IAASA,EAAKn/C,aAAgBgxD,SAC7BhxD,EAAQm/C,EAAKn/C,aAGfqpD,EAAa,KACR,KACOA,MAGa,MAAL,GAClBA,EAAa,QACD,KAKdA,MAA4B,GAAKA,EAAa,IACzC2H,IAEY,OAAjBhxD,EAAMm+C,QAAmBn+C,EAAMuxD,QAAUlI,MACrClL,OAAS,QAIXmH,KAAOA,IACPiM,MAAQlI,EACP6I,GAAa/S,KAIhBiT,GAAe,CAACjT,EAAMkK,SAErBlK,SAAe6R,SAGdhxD,EAAQ,IAAIqyD,KAIbryD,MAAQA,IACPm+C,OAAS,WACTz6C,EAAMyuD,GAAchT,EAAMkK,UAC5B3lD,IAAQmtD,OACL7wD,MAAQ,MAER0D,GAoBT,IAEI4uD,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAezyD,OAGfwyD,GAAQ,IACD,IAAIP,WAAW,QACd,IAAIA,WAAW,QAGrBnC,EAAM,OACHA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,SAhQ/B,EAkQO9vD,EAAMqvD,KAAM,EAAG,IAAKiD,GAAU,EAAGtyD,EAAMyvD,KAAM,CAAEnU,KAAM,MAG/D,EACCwU,EAAM,MAAYT,KAAKS,KAAS,KArQ7B,EAuQM9vD,EAAMqvD,KAAM,EAAG,GAAMkD,GAAS,EAAGvyD,EAAMyvD,KAAM,CAAEnU,KAAM,QAG5D,IAGLoT,QAAU4D,KACV1D,QAAU,IACVD,SAAW4D,KACX1D,SAAW,GAkBb6D,GAAe,CAACvT,EAAMwT,EAAKloD,EAAKK,SAEhCyvC,QACEv6C,EAAQm/C,EAAKn/C,aAGE,OAAjBA,EAAMm+C,WACF4P,MAAQ,GAAK/tD,EAAMuxD,QACnBtD,MAAQ,IACRD,MAAQ,IAER7P,OAAS,IAAIrxC,WAAW9M,EAAM+tD,QAIlCjjD,GAAQ9K,EAAM+tD,SACV5P,OAAOzyC,IAAIinD,EAAIvU,SAAS3zC,EAAMzK,EAAM+tD,MAAOtjD,GAAM,KACjDwjD,MAAQ,IACRD,MAAQhuD,EAAM+tD,UAGb/tD,EAAM+tD,MAAQ/tD,EAAMiuD,MACvB1T,EAAOzvC,MACFA,KAGHqzC,OAAOzyC,IAAIinD,EAAIvU,SAAS3zC,EAAMK,EAAML,EAAMK,EAAOyvC,GAAOv6C,EAAMiuD,WAC5D1T,MAGA4D,OAAOzyC,IAAIinD,EAAIvU,SAAS3zC,EAAMK,EAAML,GAAM,KAC1CwjD,MAAQnjD,IACRkjD,MAAQhuD,EAAM+tD,UAGdE,OAAS1T,EACXv6C,EAAMiuD,QAAUjuD,EAAM+tD,UAAeE,MAAQ,GAC7CjuD,EAAMguD,MAAQhuD,EAAM+tD,UAAeC,OAASzT,KAG7C,GA8oCT,IAqBIqY,GAAc,CACjBV,aAtBoBA,GAuBpBC,cAtBqBA,GAuBrBH,iBAtBwBA,GAuBxBa,YAnxCoB1T,GAEZiT,GAAajT,EAvKJ,IAy7CjBiT,aAtBoBA,GAuBpBU,QArqCiB,CAAC3T,EAAMiI,SAEnBpnD,EACAolD,EAAOX,EACPoG,EACAkI,EACApB,EAAMzB,EACN/B,EACA7S,EACAsS,EAAKC,EACL/iD,EACAmC,EACAwhD,EAEA+B,EAAWC,EAASC,EAEpBsC,EAAWC,EAASC,EACpBta,EACAl1C,EALA8qD,EAAO,QAML2E,EAAO,IAAIrmD,WAAW,OACxBrJ,EAEA5J,QAEEu5D,EACJ,IAAItmD,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,SAG5EqyC,IAASA,EAAKn/C,QAAUm/C,EAAKsF,SAC5BtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,gBAChB6L,KAGD7R,EAAKn/C,MApVK,KAqVdA,EAAM8uD,SAAuBA,KApVb,MAwVd3P,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACLnlD,EAAMmuD,OACNnuD,EAAMs7C,OAGPqW,IACCzB,IACDW,mBAII7wD,EAAM8uD,WApXF,KAsXW,IAAf9uD,EAAMslD,KAAY,GACdwJ,KA3WM,cA+WPxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGQ,EAAbt7C,EAAMslD,MAAsB,QAAT6I,EAAiB,GACjCkD,MAAQ,IAET,GAAY,IAAPlD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAO8B,EAAM,EAAG,KAIrC,IACA,IAEDrE,KA7YC,aAgZHvqD,MAAQ,EACVvE,EAAMgnD,SACFA,KAAKqM,MAAO,KAED,IAAP/N,UACA,QAAoB,OAAc,IAAM,GAAI,GACjDrB,IAAM,2BACL6K,KA3XD,aA8XK,QAAqB5L,GAAY,GACtCe,IAAM,+BACL6K,KAhYD,iBAoYG,KACF,IAEyB,GAAnB,MACM,IAAhB9uD,EAAMuxD,QACFA,MAAQ3Y,UAEPA,EAAM54C,EAAMuxD,MAAO,GACrBtN,IAAM,wBACL6K,KA7YD,WAmZDhB,KAAO,GAAK9tD,EAAMuxD,QAInBpR,MAAQngD,EAAMqxD,MAAQ,IACrBvC,KAAc,IAAPX,EA5aH,GAEE,KA4aL,IACA,aAvbE,OA4bF7S,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAGJ/2C,MAAQ4pD,GACK,MAAR5pD,SAAkB2+C,GAAY,GAClCe,IAAM,+BACL6K,KA1aD,YA6aW,MAAd9uD,EAAMuE,MAAgB,GACnB0/C,IAAM,6BACL6K,KA/aD,SAkbH9uD,EAAMgnD,SACFA,KAAKt8B,KAASyjC,GAAQ,EAAK,GAEjB,IAAdnuD,EAAMuE,UAEH,GAAY,IAAP4pD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA3dE,OAAA,OA+dDxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,EAGNt7C,EAAMgnD,SACFA,KAAKgD,KAAOmE,GAEF,IAAdnuD,EAAMuE,UAEH,GAAY,IAAP4pD,IACL,GAAMA,IAAS,EAAK,MACpB,GAAMA,IAAS,GAAM,MACrB,GAAMA,IAAS,GAAM,MACpBkD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KArfA,OAAA,OAyfCxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,EAGNt7C,EAAMgnD,SACFA,KAAKsM,OAAiB,IAAPnF,IACfnH,KAAKiD,GAAMkE,GAAQ,GAET,IAAdnuD,EAAMuE,UAEH,GAAY,IAAP4pD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA9gBG,OAAA,KAihBS,KAAd9uD,EAAMuE,MAAgB,MAEjB+2C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJ9gD,OAAS2zD,EACXnuD,EAAMgnD,SACFA,KAAKuM,UAAYpF,GAEP,IAAdnuD,EAAMuE,UAEH,GAAY,IAAP4pD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAO8B,EAAM,EAAG,MAIvC,IACA,OAGAnzD,EAAMgnD,SACPA,KAAKrgC,MAAQ,QAEfmoC,KA5iBG,OAAA,KA+iBS,KAAd9uD,EAAMuE,UACDvE,EAAMxF,OACTsQ,EAAO6mD,MAAeA,GACtB7mD,IACE9K,EAAMgnD,SACFhnD,EAAMgnD,KAAKuM,UAAYvzD,EAAMxF,OAC9BwF,EAAMgnD,KAAKrgC,UAERqgC,KAAKrgC,MAAQ,IAAI7Z,WAAW9M,EAAMgnD,KAAKuM,cAEzCvM,KAAKrgC,MAAMjb,IACf05C,EAAMhH,SACJyM,EAGAA,EAAO//C,GAGT8tC,IAMc,IAAd54C,EAAMuE,UACF8sD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAOjM,EAAOt6C,EAAM+/C,OAE1C//C,KACAA,IACFtQ,QAAUsQ,GAEd9K,EAAMxF,kBAENA,OAAS,IACTs0D,KAhlBE,OAAA,KAmlBU,KAAd9uD,EAAMuE,MAAgB,IACX,IAATotD,YACG,OAGCvM,EAAMyF,EAAO//C,KAEf9K,EAAMgnD,MAAQpO,GACb54C,EAAMxF,OAAS,UACZwsD,KAAKtlD,MAAQoF,OAAOwkD,aAAa1S,UAElCA,GAAO9tC,EAAO6mD,MAEL,IAAd3xD,EAAMuE,UACF8sD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAOjM,EAAOt6C,EAAM+/C,OAE1C//C,KACAA,EACJ8tC,eAEG54C,EAAMgnD,SACPA,KAAKtlD,KAAO,QAEdlH,OAAS,IACTs0D,KA1mBK,OAAA,KA6mBO,KAAd9uD,EAAMuE,MAAgB,IACX,IAATotD,YACG,OAECvM,EAAMyF,EAAO//C,KAEf9K,EAAMgnD,MAAQpO,GACb54C,EAAMxF,OAAS,UACZwsD,KAAK+C,SAAWjjD,OAAOwkD,aAAa1S,UAErCA,GAAO9tC,EAAO6mD,MACL,IAAd3xD,EAAMuE,UACF8sD,MAAQ3Q,GAAQ1gD,EAAMqxD,MAAOjM,EAAOt6C,EAAM+/C,OAE1C//C,KACAA,EACJ8tC,eAEG54C,EAAMgnD,SACPA,KAAK+C,QAAU,QAEjB+E,KAjoBE,OAAA,KAooBU,IAAd9uD,EAAMuE,MAAgB,MAEjB+2C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGN6S,KAAwB,QAARkD,OAAiB,GAC9BpN,IAAM,wBACL6K,KA1nBH,WA8nBE,IACA,EAGL9uD,EAAMgnD,SACFA,KAAK8C,KAAS9pD,EAAMuE,OAAS,EAAK,IAClCyiD,KAAKqM,MAAO,KAEflT,MAAQngD,EAAMqxD,MAAQ,IACrBvC,KAzpBM,cAFF,QA+pBHxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGL6E,MAAQngD,EAAMqxD,MAAQF,GAAQhD,KAE5B,IACA,IAEDW,KA1qBE,QAAA,MA6qBe,IAAnB9uD,EAAMoxD,kBAEHzM,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,EAENyV,KAEJ5Q,MAAQngD,EAAMqxD,MAAQ,IACrBvC,KAxrBM,QAAA,MA2rBR1H,IAAUxF,IAAWwF,IAAUvF,gBA1rBrB,MA6rBV7hD,EAAMkP,KAAM,MAEG,EAAPosC,KACK,EAAPA,IAEFwT,KAprBC,cAwrBFxT,EAAO,GAAG,IACF,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,WAGJpsC,KAAe,EAAPi/C,OAEJ,KACF,EAGQ,EAAPA,QACF,IAGGW,KAttBI,cAwtBP,QACS9uD,KAGN8uD,KAttBM,GAutBR1H,IAAUvF,GAAS,MAEX,KACF,qBAKP,IAGGiN,KAruBG,cAuuBN,IACE7K,IAAM,uBACL6K,KA5tBH,QA+tBG,KACF,aAhvBM,YAqvBG,EAAPxT,KACK,EAAPA,EAGDA,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,MAGE,eAAuB,GAAM,OAAS,GAC3C2I,IAAM,iCACL6K,KAlvBD,cAqvBDt0D,OAAgB,MAAP2zD,IAIR,IACA,IAEDW,KA3wBO,GA4wBT1H,IAAUvF,gBA5wBD,KA+wBPiN,KA9wBM,QAAA,QAixBL9uD,EAAMxF,OACTsQ,EAAM,IACJA,EAAO6mD,MAAeA,GACtB7mD,EAAOolD,MAAeA,GACb,IAATplD,YAEGY,IAAI05C,EAAMhH,SAASyM,EAAMA,EAAO//C,GAAOioD,MAEtCjoD,KACAA,KACAA,KACDA,IACDtQ,QAAUsQ,UAIZgkD,KAryBM,cAKC,QAoyBNxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAGJmW,KAAkC,KAAnB,WAEX,KACF,IAEFC,MAAmC,GAAnB,WAEZ,KACF,IAEFF,MAAmC,GAAnB,WAEZ,KACF,EAGJxxD,EAAMyxD,KAAO,KAAOzxD,EAAM0xD,MAAQ,GAAI,GACnCzN,IAAM,wCACL6K,KAhzBD,WAqzBD6C,KAAO,IACP7C,KAl0BS,QAAA,QAq0BR9uD,EAAM2xD,KAAO3xD,EAAMwxD,OAAO,MAExBlW,EAAO,GAAG,IACF,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJ+T,KAAK+D,EAAMpzD,EAAM2xD,SAAmB,EAAPxD,OAEzB,KACF,OAGHnuD,EAAM2xD,KAAO,MACZtC,KAAK+D,EAAMpzD,EAAM2xD,SAAW,OAM9BjD,QAAU1uD,EAAM4xD,SAChBhD,QAAU,IAET,CAAEtT,KAAMt7C,EAAM4uD,WACfQ,GAl4BA,EAk4BgBpvD,EAAMqvD,KAAM,EAAG,GAAIrvD,EAAM0uD,QAAS,EAAG1uD,EAAMyvD,KAAMhsD,KACjEmrD,QAAUnrD,EAAK63C,KAEjB53C,EAAK,GACFugD,IAAM,6BACL6K,KAx1BD,WA41BD6C,KAAO,IACP7C,KAx2BU,QAAA,QA22BT9uD,EAAM2xD,KAAO3xD,EAAMyxD,KAAOzxD,EAAM0xD,OAAO,QAEnC1xD,EAAM0uD,QAAQP,MAAcnuD,EAAM4uD,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGNoV,EAAW,QAEHF,KACFA,IAEFnB,KAAKrvD,EAAM2xD,QAAUjB,MAExB,IACc,KAAbA,EAAiB,OAEfF,EAAY,EACTlV,EAAOzhD,GAAG,IACF,IAAT83D,iBAEIvM,EAAMyF,MAAWvP,KACjB,UAIAkV,KACFA,EAEW,IAAfxwD,EAAM2xD,KAAY,GACf1N,IAAM,8BACL6K,KAv4BP,WA04BK9uD,EAAMqvD,KAAKrvD,EAAM2xD,KAAO,KACvB,GAAY,UAET,KACF,UAGY,KAAbjB,EAAiB,OAEpBF,EAAY,EACTlV,EAAOzhD,GAAG,IACF,IAAT83D,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIAkV,KACFA,IAEF,IACC,GAAY,UAET,KACF,MAGL,OAECA,EAAY,EACTlV,EAAOzhD,GAAG,IACF,IAAT83D,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIAkV,KACFA,IAEF,IACC,IAAa,YAEV,KACF,KAGNxwD,EAAM2xD,KAAO7mD,EAAO9K,EAAMyxD,KAAOzxD,EAAM0xD,MAAO,GAC3CzN,IAAM,8BACL6K,KA77BL,cAg8BIhkD,OACCukD,KAAKrvD,EAAM2xD,QAAU/Y,MAj8B1B,KAu8BH54C,EAAM8uD,cAGc,IAApB9uD,EAAMqvD,KAAK,KAAY,GACpBpL,IAAM,yCACL6K,KA58BD,cAm9BDF,QAAU,IAET,CAAEtT,KAAMt7C,EAAM4uD,WACfQ,GApgCD,EAogCgBpvD,EAAMqvD,KAAM,EAAGrvD,EAAMyxD,KAAMzxD,EAAM0uD,QAAS,EAAG1uD,EAAMyvD,KAAMhsD,KAGxEmrD,QAAUnrD,EAAK63C,KAGjB53C,EAAK,GACFugD,IAAM,gCACL6K,KA99BD,cAk+BDD,SAAW,IAGXF,SAAW3uD,EAAM6xD,UAChB,CAAEvW,KAAMt7C,EAAM6uD,YACfO,GAphCA,EAohCgBpvD,EAAMqvD,KAAMrvD,EAAMyxD,KAAMzxD,EAAM0xD,MAAO1xD,EAAM2uD,SAAU,EAAG3uD,EAAMyvD,KAAMhsD,KAGpForD,SAAWprD,EAAK63C,KAGlB53C,EAAK,GACFugD,IAAM,0BACL6K,KA/+BD,cAm/BDA,KA7/BU,GA8/BZ1H,IAAUvF,gBA9/BE,KAigCViN,KAhgCS,QAAA,MAmgCX6C,GAAQ,GAAKzB,GAAQ,IAAK,GAEvBvL,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,KAEL6D,EAAM0O,KAER1O,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACLnlD,EAAMmuD,OACNnuD,EAAMs7C,KA9hCH,KAiiCNt7C,EAAM8uD,SACFgD,qBAIJA,KAAO,IAEJ9xD,EAAM0uD,QAAQP,MAAcnuD,EAAM4uD,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEPgC,GAAalV,IANV,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGNmV,GAAgC,IAAV,OAAa,OACzBD,IACFC,IACCC,IAEF1wD,EAAM0uD,QAAQwE,UACIF,EAAYC,GAAY,IAAoCD,MACzExE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENwE,EAAYxC,GAAclV,IAPxB,IASM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIA0X,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,IACRh2D,OAASk2D,EACC,IAAZD,EAAe,GAIX3B,KA1kCO,YA6kCD,GAAV2B,EAAc,GAEVqB,UACAhD,KA9lCI,YAimCE,GAAV2B,EAAc,GACXxM,IAAM,gCACL6K,KAjlCD,WAolCDnoC,MAAkB,GAAV8pC,IACR3B,KA7lCY,QAAA,MAgmCd9uD,EAAM2mB,MAAO,OAEX3mB,EAAM2mB,MACH20B,EAAOzhD,GAAG,IACF,IAAT83D,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJ9gD,QAAU2zD,MAAcnuD,EAAM2mB,OAAS,OAEnC3mB,EAAM2mB,SACR3mB,EAAM2mB,QAERmrC,MAAQ9xD,EAAM2mB,QAGhBorC,IAAM/xD,EAAMxF,SACZs0D,KAlnCU,QAAA,UAsnCP9uD,EAAM2uD,SAASR,MAAcnuD,EAAM6uD,UAAY,KAC1CL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGe,IAAV,OAAa,OACdkV,IACFC,IACCC,IAEF1wD,EAAM2uD,SAASuE,UACGF,EAAYC,GAAY,IAAoCD,MACzExE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENwE,EAAYxC,GAAclV,IAPxB,IASM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIA0X,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,EACA,GAAVC,EAAc,GACXxM,IAAM,0BACL6K,KA5pCD,WA+pCDzjD,OAASqlD,IACT/pC,MAAoB,GAAX8pC,IACT3B,KAvqCa,QAAA,MA0qCf9uD,EAAM2mB,MAAO,OAEX3mB,EAAM2mB,MACH20B,EAAOzhD,GAAG,IACF,IAAT83D,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJjwC,QAAU8iD,MAAcnuD,EAAM2mB,OAAS,OAEnC3mB,EAAM2mB,SACR3mB,EAAM2mB,QAERmrC,MAAQ9xD,EAAM2mB,SAGlB3mB,EAAMqL,OAASrL,EAAM8tD,KAAM,GACxB7J,IAAM,kCACL6K,KAxrCD,WA6rCDA,KAlsCW,QAAA,MAqsCJ,IAAToB,eACGrC,EAAOqC,EACVlwD,EAAMqL,OAASP,EAAM,MAChB9K,EAAMqL,OAASP,EAClBA,EAAO9K,EAAMguD,OACXhuD,EAAM+uD,KAAM,GACT9K,IAAM,kCACL6K,KAvsCL,SA0tCDhkD,EAAO9K,EAAMiuD,UACPjuD,EAAMiuD,QACPjuD,EAAM+tD,MAAQjjD,KAGd9K,EAAMiuD,MAAQnjD,EAEnBA,EAAO9K,EAAMxF,WAAiBwF,EAAMxF,UAC1BwF,EAAMm+C,cAGNsG,IACPsO,EAAM/yD,EAAMqL,SACZrL,EAAMxF,OAEXsQ,EAAOolD,MAAeA,MAClBplD,IACFtQ,QAAUsQ,OAEPioD,KAAStE,EAAYxhD,aACnBnC,GACU,IAAjB9K,EAAMxF,WAAsBs0D,KAxvCjB,eAKA,MAsvCF,IAAToB,YACG6C,KAAS/yD,EAAMxF,aAEhBs0D,KA9vCS,cAMN,MA2vCL9uD,EAAMslD,KAAM,MAEPhK,EAAO,IAAI,IACH,IAATqW,iBAGIvM,EAAMyF,MAAWvP,KACjB,QAGF4U,IACHtL,WAAaiJ,IACZyD,OAASzD,EACXA,MACG1N,MAAQngD,EAAMqxD,MAEdrxD,EAAMuE,MAAQm8C,GAAQ1gD,EAAMqxD,MAAO5M,EAAQoJ,EAAMkF,EAAMlF,GAAQ3N,GAAUlgD,EAAMqxD,MAAO5M,EAAQoJ,EAAMkF,EAAMlF,MAG1GqC,KAEI3rD,MAAQ4pD,EAAOgD,GAAQhD,MAAWnuD,EAAMqxD,MAAO,GACnDpN,IAAM,yBACL6K,KA/wCH,WAmxCE,IACA,IAIHA,KA1xCI,QAAA,MA6xCN9uD,EAAMslD,MAAQtlD,EAAMuE,MAAO,MAEtB+2C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGN6S,KAAwB,aAARmD,OAAqB,GAClCrN,IAAM,2BACL6K,KAtyCH,WA0yCE,IACA,IAIHA,KAhzCE,QAAA,KAmzCFgC,gBAlzCC,KAqzCDG,gBApzCC,UAuzCAC,QAtzCC,kBA0zCDF,YAcRrM,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,GAGTt7C,EAAM+tD,OAAUF,IAAS1O,EAAKqF,WAAaxkD,EAAM8uD,KAl1CxC,OAm1CcA,KAt1CZ,IAs1C4B1H,IAAUwJ,MAC/C8B,GAAavT,EAAMA,EAAKsF,OAAQtF,EAAKwF,SAAUkJ,EAAO1O,EAAKqF,cAE1DrF,EAAKgG,YACJhG,EAAKqF,YACRe,UAAYqI,IACZhJ,WAAaiJ,IACZyD,OAASzD,EACX7tD,EAAMslD,MAAQuI,MACX1N,MAAQngD,EAAMqxD,MAChBrxD,EAAMuE,MAAQm8C,GAAQ1gD,EAAMqxD,MAAO5M,EAAQoJ,EAAM1O,EAAKwF,SAAWkJ,GAAQ3N,GAAUlgD,EAAMqxD,MAAO5M,EAAQoJ,EAAM1O,EAAKwF,SAAWkJ,MAE9HzO,UAAYp/C,EAAMs7C,QAAcpsC,KAAO,GAAK,IAj3C/B,OAk3CO4/C,KAAgB,IAAM,IA12CzB,OA22CGA,MAh3CN,KAg3CuB9uD,EAAM8uD,KAAiB,IAAM,IACzD,OAAc,IAATjB,GAAezG,IAAUwJ,KAAeltD,IAAQmtD,OAC3DxO,IAED3+C,GAkGR8vD,WA9FmBrU,QAEbA,IAASA,EAAKn/C,aACVgxD,OAGLhxD,EAAQm/C,EAAKn/C,aACbA,EAAMm+C,WACFA,OAAS,QAEZn+C,MAAQ,KACN6wD,IAoFR4C,iBAhFwB,CAACtU,EAAM6H,SAGzB7H,IAASA,EAAKn/C,aAAgBgxD,SAC7BhxD,EAAQm/C,EAAKn/C,aACM,IAAP,IAAPslD,MAA0B0L,MAG/BhK,KAAOA,IACRqM,MAAO,EACLxC,KAuER6C,qBAnE4B,CAACvU,EAAMsL,WAC5BC,EAAaD,EAAWjwD,WAE1BwF,EACA2zD,EACAjwD,SAGCy7C,GAAyBA,EAAKn/C,SAC3Bm/C,EAAKn/C,MAEM,IAAfA,EAAMslD,MAp6CI,KAo6CUtlD,EAAM8uD,KACrBkC,GAr6CK,KAy6CVhxD,EAAM8uD,SACC,IAEA5O,GAAUyT,EAAQlJ,EAAYC,EAAY,GAC/CiJ,IAAW3zD,EAAMqxD,OACZJ,MAKLyB,GAAavT,EAAMsL,EAAYC,EAAYA,GAC7ChnD,KACIorD,KAj6CK,GAk6CJoC,OAEHE,SAAW,EAEVP,MAzB4DG,IA4DpE4C,YAtBiB,sCAgFlB,IAAIC,GApCJ,gBAEOnpC,KAAa,OAEbs/B,KAAa,OAEbsJ,OAAa,OAEbrJ,GAAa,OAEbtjC,MAAa,UAEb4sC,UAAa,OAWb7xD,KAAa,QAIbqoD,QAAa,QAIbD,KAAa,OAEbuJ,MAAa,GAKpB,MAAM1mD,GAAWlF,OAAO9H,UAAUgN,UAK5B40C,WACJA,YAAYI,QACZG,gBAAMC,eAAcC,kBAAaE,gBAAgBC,eAAcC,IAC7Dd,GAkFJ,YAAmB9zC,QACZA,QAAUw9C,GAAc,CAC3B8B,UAAW,MACXzD,WAAY,GACZxoC,GAAI,IACHrT,GAAW,UAERu/C,EAAMnxD,KAAK4R,QAIbu/C,EAAIC,KAAQD,EAAI1D,YAAc,GAAO0D,EAAI1D,WAAa,OACpDA,YAAc0D,EAAI1D,WACC,IAAnB0D,EAAI1D,eAAwBA,mBAI7B0D,EAAI1D,YAAc,GAAO0D,EAAI1D,WAAa,QAC9B77C,EAAQ67C,eACnBA,YAAc,IAKf0D,EAAI1D,WAAa,IAAQ0D,EAAI1D,WAAa,IAGf,IAAR,KAAbA,gBACHA,YAAc,SAIjBtF,IAAS,OACTE,IAAS,QACTiJ,OAAS,OACT/B,OAAS,QAEThM,KAAS,IAAIoN,QACbpN,KAAKqF,UAAY,MAElBgE,EAAUoK,GAAYR,aACxBx2D,KAAKujD,KACL4N,EAAI1D,eAGFb,IAAW1G,SACP,IAAIqL,MAAMvM,GAAS4H,YAGtBtK,OAAS,IAAI2V,MAENJ,iBAAiB73D,KAAKujD,KAAMvjD,KAAKsiD,QAGzC6O,EAAItC,aAEwB,iBAAnBsC,EAAItC,aACTA,WAAaiB,GAAmBqB,EAAItC,YACG,yBAAlC99C,GAASrL,KAAKyrD,EAAItC,gBACvBA,WAAa,IAAI39C,WAAWigD,EAAItC,aAElCsC,EAAIC,QACG4F,GAAYc,qBAAqB93D,KAAKujD,KAAM4N,EAAItC,YACrDjC,IAAW1G,WACP,IAAIqL,MAAMvM,GAAS4H,IC/wM4C,IAAIlvD,GAAYa,GD8yM7F25D,GAAUn0D,UAAUlF,KAAO,SAAU4G,EAAMksD,SACnCpO,EAAOvjD,KAAKujD,KACZ2N,EAAYlxD,KAAK4R,QAAQs/C,UACzBrC,EAAa7uD,KAAK4R,QAAQi9C,eAC5BjC,EAAQgF,EAAauG,KAErBn4D,KAAKsxD,aAAc,QAEnBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsB5L,GAAWJ,GAGxB,yBAAxB50C,GAASrL,KAAKD,KACX+jD,MAAQ,IAAIt4C,WAAWzL,KAEvB+jD,MAAQ/jD,IAGVgkD,QAAU,IACVF,SAAWhG,EAAKiG,MAAM5qD,SAElB,KACgB,IAAnB2kD,EAAKqF,cACFC,OAAS,IAAI33C,WAAWggD,KACxBnI,SAAW,IACXH,UAAYsI,KAGV8F,GAAYE,QAAQ3T,EAAMqO,GAE/BhF,IAAWxG,IAAeyI,MACnBmI,GAAYc,qBAAqBvU,EAAMsL,GAE5CjC,IAAW1G,KACJ8Q,GAAYE,QAAQ3T,EAAMqO,GAC1BhF,IAAWrG,OAEXH,KAKN7C,EAAKgG,SAAW,GAChBqD,IAAWzG,IACX5C,EAAKn/C,MAAMslD,KAAO,GACK,IAAvBjkD,EAAK89C,EAAKkG,aAEH6M,aAAa/S,KAChByT,GAAYE,QAAQ3T,EAAMqO,UAG7BhF,QACDtG,QACAC,QACAH,QACAI,eACEsL,MAAMlF,QACN0E,OAAQ,GACN,OAKM/N,EAAKqF,UAElBrF,EAAKwF,WACgB,IAAnBxF,EAAKqF,WAAmBgE,IAAWzG,OAEb,WAApBnmD,KAAK4R,QAAQqT,GAAiB,KAE5BmzC,EAAgBtI,GAAmBvM,EAAKsF,OAAQtF,EAAKwF,UAErDsP,EAAO9U,EAAKwF,SAAWqP,EACvBE,EAAUxI,GAAmBvM,EAAKsF,OAAQuP,KAGzCrP,SAAWsP,IACXzP,UAAYsI,EAAYmH,EACzBA,KAAWxP,OAAO/4C,IAAIyzC,EAAKsF,OAAOrG,SAAS4V,EAAeA,EAAgBC,GAAO,QAEhFxG,OAAOyG,aAGPzG,OAAOtO,EAAKsF,OAAOjqD,SAAW2kD,EAAKwF,SAAWxF,EAAKsF,OAAStF,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,cAMhG6D,IAAW1G,IAA2B,IAAnBiS,MAGnBvL,IAAWzG,YACJ6Q,GAAYY,WAAW53D,KAAKujD,WAChCuO,MAAMlF,QACN0E,OAAQ,GACN,KAGa,IAAlB/N,EAAKgG,uBAGJ,GAYT2O,GAAUn0D,UAAU8tD,OAAS,SAAUrC,QAChCD,OAAO1wD,KAAK2wD,IAanB0I,GAAUn0D,UAAU+tD,MAAQ,SAAUlF,GAEhCA,IAAW1G,KACW,WAApBlmD,KAAK4R,QAAQqT,QACV4I,OAAS7tB,KAAKuvD,OAAOnnD,KAAK,SAE1BylB,OAASuhC,GAAqBpvD,KAAKuvD,cAGvCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAMroD,KAAKujD,KAAK8E,MCz7MsE9pD,GAAwFb,QAAM,KAAzF66D,GAAG,KAAKh6D,GAAEi6D,KAAK,OAAOj6D,GAAEk6D,MAAM,QAAQl6D,GAAEm6D,KAAK,OAAOn6D,GAAEo6D,MAAM,QAAQp6D,GAAEq6D,KAAK,OAAmB,MAAM96D,GAAE,EAAEJ,GAAE66D,IAAI,CAAC,EAAE,EAAE,IAAI76D,GAAE86D,MAAM,CAAC,KAAK,IAAI96D,GAAE+6D,OAAO,CAAC,EAAE,OAAO/6D,GAAEg7D,MAAM,CAAC,EAAE,EAAE,IAAIh7D,GAAEi7D,OAAO,CAAC,EAAE,EAAE,IAAIj7D,GAAEk7D,MAAM,IAAI,EAAE,IAAI,IAAI9qD,GAAg+QhN,GAAEoG,GAAE2xD,GAAw7VC,GAc1ykBC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAdwnJ,YAAW/6D,EAAE2C,EAAEE,OAAO7C,EAAE2C,SAAS,IAAIqwD,MAAM,WAAWrwD,YAAY3C,EAAE2C,GAAGjC,OAAOmC,QAAQ,IAAImwD,MAAM,YAAYrwD,mBAAmBE,gBAAgB7C,EAAE2C,GAAGjC,eAAeV,EAAE2C,GAAGkB,OAAp6L,SAAS7D,KAAKg7D,IAAI,CAACh7D,EAAEg6D,GAAGh6D,EAAEi6D,KAAKj6D,EAAEk6D,MAAMl6D,EAAEm6D,KAAKn6D,EAAEo6D,MAAMp6D,EAAEq6D,MAAMr6D,EAAEi7D,OAAO,SAAStrD,UAAUpQ,GAAEoQ,IAA5F,CAAiGxQ,QAAM,KAAK,SAASa,KAAKuN,OAAO,SAASoC,EAAEhN,EAAEE,SAAS,CAAC8M,EAAEhN,EAAEE,IAAI7C,EAAEkR,OAAO,SAASvB,EAAEhN,EAAEE,EAAE9C,SAAS,CAAC4P,EAAE,GAAGhN,EAAEgN,EAAE,GAAG9M,EAAE8M,EAAE,GAAG5P,IAAIC,EAAEk7D,QAAQ,SAASv4D,EAAEE,UAAU7C,EAAEkR,OAAOvO,KAAKxD,GAAE87D,OAAOp4D,KAAnK,CAAyK0M,QAAM,KAA+8L,SAAQY,YAAYnQ,EAAE2C,EAAE,SAAS4E,KAAKvH,EAAEyB,KAAKyd,WAAWvc,EAAEwN,iBAAiB1O,KAAK8F,KAAK4I,uBAAuB1O,KAAKyd,WAAW/O,YAAYnQ,UAAUyB,KAAKyd,WAAWlf,GAAGmQ,gBAAgB,oBAAA1O,KAAyB8F,MAAM,mBAAmB9F,KAAK8F,KAAK4I,OAAOnQ,UAAUyB,KAAK8F,OAAOvH,EAAEuH,MAAM+F,OAAOwL,KAAKrX,KAAKyd,YAAYjO,UAAUjR,EAAEkf,WAAWvc,KAAKlB,KAAKyd,WAAWvc,KAAKwN,kBAAkB,IAAI7C,OAAOwL,KAAKrX,KAAKyd,YAAY7e,OAAOoB,KAAK8F,KAAK,GAAG9F,KAAK8F,QAAQ+F,OAAOiI,QAAQ9T,KAAKyd,YAAY1U,KAAK,EAAExK,EAAE2C,KAAK3C,EAAE,IAAI2C,IAAIkH,KAAK,uBAAuB7J,SAAS2C,EAAEe,GAAE1D,EAAE6D,MAAM,OAAO,UAAUhB,EAApmB,SAAW7C,EAAE2C,cAAc3C,UAAU2P,UAAUhN,GAAujBw4D,EAAG,IAAIz3D,GAAE1D,EAAE6D,MAAM,aAAa,aAAa,IAAI9D,EAAEuN,OAAOwL,KAAKjW,GAAGoN,QAAQ,CAACN,EAAEyrD,IAAI9tD,OAAO4B,OAAO5B,OAAO4B,OAAO,GAAGS,GAAG,EAAEyrD,GAAG13D,GAAEb,EAAEu4D,EAAE,aAAa,WAAW,IAAIC,GAAE14D,EAAE5C,mBAAmBC,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAE2yD,WAAWt7D,UAAK,IAAS2C,EAAEA,EAAE,GAAGjD,EAAE,UAAUiJ,GAAE4yD,WAAWx7D,EAAEue,aAAQ,IAASzb,EAAEA,EAAE,kBAAkB3C,EAAEyI,GAAE6yD,QAAQz7D,EAAEwe,oBAAoB68C,SAAS,UAAUzyD,GAAE4yD,WAAW5rD,UAAK,IAASyrD,EAAEA,EAAE,aAAa,IAAIC,GAAE37D,EAAEQ,IAAIm7D,GAAEI,IAAI,IAAIJ,GAAE,iBAAiB,SAAQlrD,YAAYnQ,QAAQ07D,KAAK17D,EAAEyB,KAAK8wB,QAAQ/uB,MAAMm4D,GAAEC,MAAMn6D,KAAKo6D,QAAQ,CAACR,GAAEI,4BAA4Bh6D,KAAKi6D,MAAM,EAAEvrD,MAAMnQ,EAAE2C,EAAEE,aAAa,OAAO,GAAGA,EAAEsN,cAAcnQ,EAAE2C,EAAEE,OAAO9C,QAAQL,EAAE+B,KAAK8wB,QAAQ9wB,KAAKkJ,MAAM3K,EAAE2C,EAAEE,WAAW,UAAUpB,KAAKo6D,QAAQn8D,UAAK,IAAAK,EAAWA,EAAEs7D,GAAEI,IAAItrD,cAAcnQ,EAAE2C,EAAEE,EAAE9C,OAAOL,EAAE+B,KAAKo6D,QAAQC,cAAcnsD,EAAEoC,OAAOhS,UAAUL,MAAM+B,KAAKo6D,QAAQx7D,OAAOoB,KAAKo6D,QAAQv7D,KAAKP,IAAI0B,KAAK8wB,QAAQ9wB,KAAKkJ,MAAM3K,EAAE2C,EAAEE,IAAInD,GAAGi8D,GAAEI,MAAM,GAAGJ,GAAEC,KAAKD,GAAEI,MAAMJ,GAAEI,MAAMJ,GAAEI,MAAM,SAAQ5rD,YAAYnQ,EAAE2C,EAAEE,QAAQ64D,KAAK17D,EAAEyB,KAAKo0B,OAAOlzB,EAAElB,KAAKwkD,IAAIpjD,EAAEpB,KAAKu6D,SAASx4D,MAAM/B,KAAKw6D,eAAezG,KAAK,wBAAwB/zD,KAAKi6D,KAAKj6D,KAAKo0B,+BAA+Bp0B,KAAKi6D,MAAM,0BAA0B,QAAQQ,KAAK,GAAG,8BAA8Bz6D,KAAK06D,WAAW16D,KAAK26D,WAAWjsD,gBAAgBnQ,aAAa,GAAGyB,KAAK26D,WAAWjsD,cAAcnQ,OAAO2C,QAAQE,EAAE9C,EAAEL,GAAGM,EAAEE,EAAEuB,KAAKu6D,SAASv6D,KAAK46D,gBAAgBt8D,WAAW,UAAU,MAAMG,OAAE,EAAOA,EAAEo8D,cAAc,GAAGz5D,EAAE,GAAG9C,EAAE,GAAGL,UAAK,IAAAiD,EAAWA,EAAE04D,GAAEI,IAAItrD,cAAcnQ,EAAE2C,SAASE,EAAE9C,EAAEL,GAAGM,EAAEE,EAAEuB,KAAK46D,gBAAgBt8D,OAAOE,EAAEwB,KAAKu6D,SAAS97D,MAAM,OAAOD,EAAE,IAAI0C,EAAEoP,OAAOspD,GAAEI,cAAch6D,KAAK86D,mBAAmBr8D,KAAKs8D,cAAc,GAAG35D,EAAE,GAAG9C,EAAE,GAAGL,EAAEiD,GAAGwN,mBAAmBnQ,UAAU,MAAAyB,KAAWu6D,SAASh8D,UAAUg8D,SAASh8D,GAAG,IAAI27D,GAAEl6D,KAAK26D,WAAWp8D,IAAIyB,KAAKu6D,SAASh8D,IAA4zE,YAAWA,UAAUA,EAAEA,EAAqD,YAAWA,EAAE2C,EAAEE,UAAUF,EAAE3C,KAAK2C,GAAG,YAAW3C,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,UAAUu8D,GAAE95D,EAAE85D,GAAEz8D,EAAE6C,EAAE9C,GAAG08D,GAAEz8D,EAAEN,EAAEQ,IAAgF,YAAWF,EAAE2C,EAAEE,UAAUA,EAAE,EAAE7C,EAAE6C,EAAE,EAAEF,EAAE85D,GAAE55D,EAAE7C,EAAE2C,GAAG,YAAW3C,UAAUA,EAAEA,EAAEA,QAAQA,EAAE,IAAI,KAAnnF,SAASA,KAAKuN,OAAO,SAASoC,EAAEhN,SAAS,CAACgN,EAAEhN,IAAI3C,EAAE08D,aAAa,SAAS/sD,SAAS,CAACA,EAAE,IAAI,EAAEA,EAAE,IAAI,IAAI3P,EAAE28D,SAAS,SAAShtD,SAAS,CAAC,WAAWyJ,OAAOzJ,GAAGyJ,OAAOzJ,GAAGitD,OAAO,OAAO58D,EAAE68D,UAAU,SAASltD,UAAUA,EAAE,IAAI,GAAG3P,EAAE88D,UAAU,SAASntD,UAAUA,EAAE,IAAI,GAAG3P,EAAE+8D,UAAU,SAASptD,UAAUA,EAAE,IAAI,IAAI3P,EAAEg9D,UAAU,SAASrtD,UAAUA,EAAE,IAAI,IAA7U,CAAkVpN,QAAM,KAAK,SAASvC,cAAc2P,SAAS,iBAAiBA,GAAG,OAAAA,EAASA,OAAE,IAASstD,WAAW,SAASttD,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ3P,EAAEk9D,QAAQ,SAASvtD,SAAS,iBAAiBA,EAAE3F,KAAK6vB,MAAMlqB,QAAG,GAAQ3P,EAAEu7D,WAAW,SAAS5rD,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ3P,EAAEm9D,YAAY,SAASxtD,SAAS,kBAAkBA,EAAEA,OAAE,GAAQ3P,EAAEs7D,WAAW34D,EAAE3C,EAAEo9D,UAAU,SAASztD,EAAEyrD,MAAM53D,MAAMC,QAAQkM,UAAUA,EAAEnF,QAAQ4wD,EAAEiC,MAAMr9D,EAAEw7D,QAAQ,SAAS7rD,EAAE9M,OAAO9C,QAAQL,EAAE,UAAUiD,EAAEgN,UAAK,IAAS5P,EAAEA,EAAE,UAAUuN,OAAOgwD,YAAYhwD,OAAOiI,QAAQ7V,GAAG8K,KAAK,EAAE6yD,EAAEjC,KAAK,CAACiC,EAAEx6D,EAAEu4D,QAAQp7D,EAAEu9D,QAAQ,SAAS5tD,EAAEyrD,EAAEv4D,SAAS9C,EAAEq7D,EAAEzrD,UAAU5P,EAAE8C,EAAE9C,QAAG,GAA1lB,CAAmmB4I,QAAM,KAAuxD,SAAQwH,YAAYnQ,QAAQw9D,GAAG,IAAIx9D,EAAEy9D,aAAah8D,KAAKi8D,GAAG,IAAI19D,EAAEy9D,aAAah8D,KAAKk8D,GAAG,IAAI39D,EAAEy9D,aAAah8D,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOE,EAAE7C,EAAE49D,QAAQ,IAAIj7D,GAAG5C,EAAE0B,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEE,GAAGpB,KAAKiE,EAAE/C,EAAEE,GAAG9C,GAAGoQ,SAASnQ,EAAE2C,OAAOE,EAAE9C,EAAEL,QAAQQ,KAAKyC,GAAG0F,GAAEw1D,GAAG59D,EAAE+J,KAAK6vB,MAAM75B,EAAEE,GAAG4C,EAAE9C,cAAcgK,KAAK6vB,MAAMl3B,EAAEzC,KAAKmI,GAAEy1D,SAASn+D,EAAEoD,OAAOJ,KAAKE,OAAO,EAAEE,EAAE,MAAM,EAAEA,EAAE,SAASnD,EAAEkD,EAAEnD,EAAE0I,GAAEy1D,GAAGl7D,EAAElD,EAAEqD,EAAEsF,GAAEy1D,GAAG34D,EAAErC,EAAE,EAAE,EAAEuF,GAAEy1D,GAAG19D,EAAEV,EAAE,EAAE,EAAE2I,GAAEy1D,GAAG14D,EAAE,IAAInF,EAAE+C,EAAE,IAAIjD,EAAEqD,EAAE3B,KAAK6C,EAAEc,EAAE3D,KAAK6C,EAAEtB,IAAI,GAAGkC,EAAEzD,KAAK6C,EAAEc,EAAEzF,EAAE8B,KAAK6C,EAAEtB,EAAED,IAAI,GAAGI,EAAE1B,KAAK6C,EAAEc,EAAE,EAAE3D,KAAK6C,EAAEtB,EAAE,IAAI,UAAU,SAAS+6D,iBAAiB36D,EAAEN,EAAEpD,EAAE,EAAE,IAAI+B,KAAKs8D,iBAAiB74D,EAAEtF,EAAEgD,EAAE,EAAE,IAAInB,KAAKs8D,iBAAiB56D,EAAEgC,EAAE/E,EAAE,EAAE,KAAK+P,OAAOnQ,EAAE2C,EAAEE,SAAS9C,EAAE,qBAAqB4C,EAAEE,GAAGnD,EAAEsK,KAAK6vB,MAAM75B,EAAED,GAAGG,EAAE8J,KAAK6vB,MAAMl3B,EAAE5C,GAAGE,EAAE+J,KAAK6vB,MAAMh3B,EAAE9C,GAAG+C,EAAE,sBAAsB5C,EAAED,GAAGN,EAAEK,KAAK8C,GAAGC,EAAEJ,KAAKG,GAAGlD,EAAEiD,KAAKC,OAAOF,EAAEuC,EAAE/E,EAAEgF,EAAEpC,EAAEI,KAAKL,EAAEA,GAAGnD,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGzD,GAAGC,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGL,EAAEnD,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGzD,EAAEC,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,SAAS8B,EAAEvF,EAAEiD,EAAE,mBAAmBO,EAAEJ,EAAEoC,EAAE,mBAAmB9B,EAAEzD,EAAEQ,EAAE,mBAAmBmD,EAAE5D,EAAEyF,EAAE,kBAAkBC,EAAEtC,EAAEC,EAAE,kBAAkB0D,EAAE9G,EAAEwD,EAAE,kBAAkBE,EAAE3D,EAAE,GAAGq+D,EAAEj7D,EAAE,GAAGk7D,EAAEr+D,EAAE,GAAGs+D,EAAE,IAAIx+D,EAAEy+D,EAAE,IAAIj+D,EAAEk+D,EAAE,IAAIn+D,EAAEiD,EAAEzB,KAAK6C,EAAE45D,EAAEz8D,KAAK6C,EAAE65D,EAAE18D,KAAK6C,EAAE85D,KAAK,GAAGC,EAAE58D,KAAK6C,EAAE45D,EAAEt7D,EAAEnB,KAAK6C,EAAE65D,EAAEh5D,EAAE1D,KAAK6C,EAAE85D,EAAEh+D,KAAK,GAAG6C,EAAExB,KAAK6C,EAAE45D,EAAE94D,EAAE3D,KAAK6C,EAAE65D,EAAEn7D,EAAEvB,KAAK6C,EAAE85D,EAAEh7D,KAAK,GAAGy6D,EAAEp8D,KAAK6C,EAAE45D,EAAE,EAAEz8D,KAAK6C,EAAE65D,EAAE,EAAE18D,KAAK6C,EAAE85D,EAAE,KAAK,UAAU,SAASL,iBAAiB76D,EAAEvD,EAAEoD,EAAEnD,EAAE,IAAI6B,KAAKs8D,iBAAiBM,EAAEn5D,EAAE/B,EAAEE,EAAE,IAAI5B,KAAKs8D,iBAAiB96D,EAAEM,EAAE8B,EAAEqB,EAAE,IAAIjF,KAAKs8D,iBAAiBF,EAAEv6D,EAAE06D,EAAEC,EAAE,KAAK9tD,EAAEnQ,UAAUyB,KAAKiE,EAAE,IAAI1F,GAAGmQ,iBAAiBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,OAAOQ,EAAED,EAAEP,EAAEiD,EAAEA,EAAEE,EAAEA,EAAE9C,EAAEA,SAASE,EAAE,EAAEC,EAAE,MAAMD,EAAEC,EAAED,EAAEA,EAAEoI,GAAEi2D,QAAQt+D,EAAE2C,EAAEE,EAAE9C,IAAIG,iBAAiBF,EAAE2C,EAAEE,EAAE9C,SAASL,EAAE2I,GAAEk2D,SAAS,GAAGv+D,UAAUN,EAAE,GAAGiD,EAAEjD,EAAE,GAAGmD,EAAEnD,EAAE,GAAGK,GAAGsI,GAAEk2D,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,UAAUl2D,GAAEw1D,GAAG,SAASW,KAAK,GAAG,GAAGn2D,GAAEy1D,MAAM9zD,KAAKw0D,KAAK,IAAI,EAAE,SAAQruD,YAAYnQ,QAAQw9D,GAAG,IAAIx9D,EAAEy9D,aAAah8D,KAAKi8D,GAAG,IAAI19D,EAAEy9D,aAAah8D,KAAKk8D,GAAG,IAAI39D,EAAEy9D,aAAah8D,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,EAAE,IAAIA,EAAE,IAAIA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOE,EAAE7C,EAAE49D,QAAQ,IAAIj7D,GAAG5C,EAAE0B,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEE,GAAGpB,KAAKiE,EAAE/C,EAAEE,GAAG9C,GAAGoQ,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAE,EAAEL,EAAE,SAASQ,EAAEF,EAAEyB,KAAK+7D,GAAGv9D,EAAE0C,EAAElB,KAAKi8D,GAAG56D,EAAED,EAAEpB,KAAKk8D,GAAGh+D,EAAEqK,KAAK6vB,MAAM35B,GAAG6C,EAAEiH,KAAK6vB,MAAM55B,GAAGL,EAAEoK,KAAK6vB,MAAM/2B,GAAGF,EAAE1C,EAAEP,EAAEwF,EAAElF,EAAE8C,EAAE3C,EAAE0C,EAAElD,MAAMwF,EAAE,KAAK,IAAIrF,EAAE,OAAO4P,EAAEjQ,GAAG,GAAGA,EAAEyF,EAAEzF,EAAEyF,IAAI6E,KAAK6vB,MAAMlqB,EAAE5P,EAAE,MAAMA,SAAS0B,KAAKg9D,cAAc9+D,EAAEoD,EAAEnD,EAAEgD,EAAEuC,EAAEC,EAAEhF,EAAE+E,GAAGgL,cAAcnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,SAAS6C,EAAErB,KAAK6C,EAAEtE,GAAGL,EAAE8B,KAAK6C,EAAEtE,EAAE,GAAG+C,EAAEtB,KAAK6C,EAAExB,EAAEH,GAAG/C,EAAE6B,KAAK6C,EAAExB,EAAEH,EAAE,GAAGC,EAAEnB,KAAK6C,EAAE3E,EAAEgD,GAAGwC,EAAE1D,KAAK6C,EAAE3E,EAAEgD,EAAE,GAAGvC,EAAEiI,GAAEi2D,QAAQ78D,KAAK6C,EAAEvB,EAAEF,GAAG9C,EAAEL,EAAEQ,GAAGkF,EAAEiD,GAAEi2D,QAAQ78D,KAAK6C,EAAE1B,EAAEC,GAAG9C,EAAE,EAAEL,EAAEQ,GAAG8C,EAAEqF,GAAEi2D,QAAQ78D,KAAK6C,EAAE1E,EAAEiD,GAAG9C,EAAEL,EAAE,EAAEQ,GAAGkD,EAAEiF,GAAEi2D,QAAQ78D,KAAK6C,EAAEa,EAAEtC,GAAG9C,EAAE,EAAEL,EAAE,EAAEQ,GAAGgF,EAAEmD,GAAEi2D,QAAQ78D,KAAK6C,EAAEvB,EAAEF,EAAE,GAAG9C,EAAEL,EAAEQ,EAAE,GAAGiD,EAAEkF,GAAEi2D,QAAQ78D,KAAK6C,EAAE1B,EAAEC,EAAE,GAAG9C,EAAE,EAAEL,EAAEQ,EAAE,GAAGmD,EAAEgF,GAAEi2D,QAAQ78D,KAAK6C,EAAE1E,EAAEiD,EAAE,GAAG9C,EAAEL,EAAE,EAAEQ,EAAE,GAAGqD,EAAE8E,GAAEi2D,QAAQ78D,KAAK6C,EAAEa,EAAEtC,EAAE,GAAG9C,EAAE,EAAEL,EAAE,EAAEQ,EAAE,UAAjiG,SAAWF,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,UAAU68D,GAAE55D,EAAEH,GAAE1C,EAAE2C,EAAE5C,EAAEL,EAAEQ,EAAED,GAAGyC,GAAE1C,EAAE2C,EAAEG,EAAEnD,EAAEoD,EAAEnD,IAAm+F8+D,CAAEC,GAAE5+D,GAAG4+D,GAAE1+D,GAAG0+D,GAAEz+D,GAAGE,EAAEgF,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEE,EAAEE,GAAG4M,EAAEnQ,UAAU,IAAIyB,KAAKiE,EAAE,IAAI1F,IAAI,SAAQmQ,YAAYnQ,EAAE2C,EAAEE,MAAM,EAAEF,EAAEE,EAAExC,aAAa,IAAI2yD,MAAM,yCAAyC4L,YAAYp7D,MAAMX,EAAExC,gBAAgBN,GAAG4C,EAAE5C,GAAG,EAAEA,GAAG,IAAI8C,EAAExC,QAAQ,IAAAwC,EAAM9C,GAAG0B,KAAKm9D,YAAY7+D,GAAG,IAAI8+D,GAAE7+D,GAAGA,EAAE8+D,QAAQ,UAAU1kC,WAAWv3B,EAAEpB,KAAKs9D,sBAAsB/0D,KAAKg1D,IAAI,EAAEr8D,GAAGlB,KAAKw9D,sBAAsBj1D,KAAKg1D,IAAI,EAAEn8D,EAAExC,OAAO,SAAS2+D,IAAI,EAAEn8D,EAAExC,QAAQ,GAAG8P,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAE,EAAEL,EAAE,EAAEQ,GAAE,OAAQD,EAAE,EAAE6C,EAAErB,KAAKs9D,sBAAsBp/D,EAAE8B,KAAKw9D,8BAA8Bl8D,EAAE,EAAEA,EAAEtB,KAAKm9D,YAAYv+D,OAAO0C,GAAG,EAAE,OAAOnD,EAAE6B,KAAKm9D,YAAY77D,UAAUtB,KAAK24B,WAAWr3B,GAAGpD,EAAEC,EAAEs/D,OAAOn3D,GAAEojD,KAAKnrD,EAAE8C,GAAG5C,GAAGN,EAAE89D,GAAG31D,GAAEojD,KAAKxoD,EAAEG,GAAGiF,GAAEojD,KAAKtoD,EAAEC,GAAG/C,EAAE+C,EAAEpD,EAAEoD,IAAIA,GAAG,EAAEnD,GAAG,SAASM,EAAEkQ,eAAenQ,UAAUyB,KAAKm9D,YAAYn9D,KAAKm9D,YAAYv+D,OAAO,EAAEL,eAAeA,UAAUA,EAAE,SAASgK,KAAK6vB,MAAM75B,EAAE,SAAS,KAAK,SAAQmQ,YAAYnQ,QAAQm/D,cAAc,IAAIp3D,GAAE/H,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIyB,KAAK29D,cAAc,IAAIr3D,GAAE/H,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIyB,KAAK49D,UAAU,IAAIt3D,GAAE/H,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAImQ,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,OAAO6C,EAAEnD,EAAE,EAAEoD,EAAE,UAAUu8D,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,IAAIx8D,EAAErB,KAAK49D,UAAUE,eAAeD,GAAGx8D,EAAE,OAAO08D,EAAEt/D,EAAE6C,EAAEZ,EAAElC,EAAE8C,EAAEmF,EAAEH,GAAEojD,KAAKnrD,EAAEw/D,GAAGC,EAAE13D,GAAEojD,KAAKxoD,EAAER,GAAGgD,EAAE4C,GAAEojD,KAAKtoD,EAAE28D,MAAM18D,EAAEo8D,OAAOh3D,EAAEu3D,EAAEt6D,EAAEhD,EAAEQ,EAAER,GAAGY,KAAK,OAAO,GAAG,GAAG,EAAEA,EAAE,MAAMnD,EAAE,EAAEgD,EAAE,UAAU88D,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAOC,EAAE5/D,EAAEgD,EAAEoC,EAAEzF,EAAEqD,EAAE3C,EAAE2H,GAAEojD,KAAKnrD,EAAE2/D,GAAGv6D,EAAE2C,GAAEojD,KAAKxoD,EAAEwC,GAAGnC,EAAE+E,GAAEojD,KAAKtoD,EAAE88D,KAAK,MAAMl+D,KAAK09D,cAAcI,eAAeG,SAAS58D,EAAEo8D,OAAO9+D,EAAEgF,EAAEpC,EAAEmC,EAAExC,EAAEwC,GAAGpC,GAAGpD,EAAE,MAAM8B,KAAK29D,cAAcG,eAAeG,SAAS58D,EAAEo8D,OAAO9+D,EAAEgF,EAAEpC,EAAEmC,EAAExC,EAAEwC,GAAGpC,GAAGA,GAAG,SAAS68D,GAAEhgE,EAAE,IAAIgD,EAAE,IAAIjD,IAAI,SAAQwQ,YAAYnQ,GAAGm6B,YAAYx3B,EAAEy3B,WAAWv3B,SAASg9D,MAAM,IAAI93D,GAAE/H,EAAE2C,EAAEE,GAAGpB,KAAKq+D,OAAO,IAAI/3D,GAAE/H,EAAE2C,EAAEE,OAAO9C,EAAE,EAAA,EAAIL,GAAE,EAAA,UAAaiQ,EAAE,EAAEA,EAAE9M,EAAExC,OAAOsP,GAAG,EAAE,IAAI9M,EAAE8M,OAAO3F,KAAK8M,IAAI/W,EAAE4P,GAAGjQ,EAAEsK,KAAKD,IAAIrK,EAAEiQ,UAAUzP,EAAE,MAAM,KAAKH,EAAE,SAASggE,YAAY,EAAE,EAAE7/D,EAAEiQ,OAAOnQ,EAAE2C,EAAEE,SAAS9C,EAAEC,EAAEggE,GAAEC,aAAavgE,EAAEiD,EAAEq9D,GAAEC,aAAa//D,EAAE2C,EAAEm9D,GAAEC,yBAAyBJ,MAAMX,OAAOl/D,EAAE2C,EAAEE,GAAGpB,KAAKq+D,OAAOZ,OAAOn/D,EAAEL,EAAEQ,IAAIuB,KAAKs+D,aAAaC,GAAEC,aAAa,oBAA8T3F,QAAM,KAAnS4F,SAAS,SAASvwD,OAAOhN,EAAEE,EAAE9C,QAAQL,EAAE,UAAUiJ,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACw3B,YAAY,UAAUxxB,GAAEu0D,QAAQx9D,EAAEy6B,oBAAe,IAASt3B,EAAEA,EAAE,EAAEu3B,WAAW,UAAUzxB,GAAEy0D,UAAU19D,EAAE06B,oBAAoBghC,SAAS,UAAUzyD,GAAEs0D,WAAWI,UAAK,IAASjC,EAAEA,EAAE,YAAO,IAASr7D,EAAEA,EAAE,KAAsnB,SAAQoQ,YAAYnQ,QAAQouB,KAAKwuC,OAAO,GAAGn7D,KAAK0+D,QAAQngE,GAAGmQ,cAAc,IAAIiwD,GAAE3+D,KAAK4+D,YAAYlwD,QAAQnQ,QAAQouB,KAAKpuB,EAAEogE,GAAEE,WAAWF,GAAEG,aAAapwD,eAAeie,KAAK3sB,KAAK2sB,KAAKgyC,GAAEE,WAAWF,GAAEI,UAAUJ,GAAEG,aAAapwD,QAAQnQ,WAAW2C,EAAE,EAAEA,EAAE3C,EAAE2C,GAAG,OAAO89D,UAAUtwD,KAAKnQ,QAAQygE,gBAAgB99D,EAAEyW,OAAO3X,KAAK2sB,MAAMwuC,OAAOwD,GAAEM,aAAa1gE,WAAW2C,EAAE,WAAWA,EAAE,WAAWA,EAAEwN,QAAQnQ,WAAM,IAAAA,SAAkByB,KAAKivD,KAAK,OAAO,MAAM1wD,EAAE,UAAUoZ,OAAOwjD,OAAO58D,GAAG48D,OAAOn7D,KAAKivD,KAAK,MAAMkM,OAAO,SAASj6D,EAAEE,UAAUpB,KAAKivD,KAAK,QAAQ/tD,EAAE3C,MAAM,GAAG,WAAW6C,EAAEsN,yBAAyB1O,KAAKivD,KAAK,MAAMkM,OAAO,KAAKA,OAAOn7D,KAAKivD,KAAK,KAAKvgD,mBAAmB1O,KAAKivD,KAAK,IAAI0P,GAAEO,iBAAiBxwD,mBAAmBnQ,EAAEyB,KAAKivD,KAAK,WAAWjvD,KAAKg/D,UAAUzgE,EAAEogE,GAAEQ,mBAAmBR,GAAEM,aAAa,GAAGN,GAAEG,aAAa3D,OAAO,mBAAmBwD,GAAEE,WAAW1D,OAAO,eAAewD,GAAEI,UAAU5D,OAAO,MAAMwD,GAAEO,iBAAiB,EAAE32D,KAAKg1D,IAAI,EAAE,IAAIoB,GAAEQ,kBAAkB,EAAE52D,KAAKg1D,IAAI,EAAE,IAAI,iBAAgBoB,GAAEjwD,uBAAuBhQ,WAAWsB,KAAK2f,MAAM,EAAEjR,kBAAkB1O,KAAK2f,MAAMjR,KAAKnQ,UAAUyB,KAAK2f,OAAO,EAAE5P,MAAMk/C,KAAK1wD,IAAI,SAAQmQ,YAAYnQ,EAAE2C,EAAEE,EAAE,GAAG9C,EAAE,GAAGL,EAAE,SAAS6H,KAAKvH,EAAEyB,KAAKo/D,WAAWl+D,EAAElB,KAAKq/D,UAAUj+D,EAAEpB,KAAK8a,OAAOxc,EAAE0B,KAAKs/D,YAAYrhE,EAAEyQ,MAAMnQ,SAAS2C,EAAElB,KAAKo/D,WAAW7gE,GAAG6C,EAAz4N,SAAW7C,EAAE2C,EAAEE,OAAO9C,EAAE4C,EAAE3C,OAAOD,EAAE,GAAG,OAAOq7D,EAAEpxD,KAAK6vB,MAAM95B,EAAE,GAAGL,EAAEM,EAAEo7D,IAAI17D,GAAGK,EAAEq7D,KAAK17D,EAAE,EAAEK,GAAGq7D,EAAE,UAAUp7D,EAAuyN8D,CAAE,EAAErC,KAAKq/D,UAAUzgE,WAAWsC,EAAElB,KAAKq/D,UAAUnxD,KAAK,EAAE5P,EAAE0B,KAAKq/D,UAAUzgE,OAAO,KAAKwC,EAAE,SAASpB,KAAK8a,OAAO,GAAGvc,GAAGyB,KAAKs/D,YAAY,MAAMt/D,KAAKq/D,UAAU,OAAOj+D,IAAI9C,SAAS0B,KAAK8a,OAAOxc,GAAGC,GAAGyB,KAAKs/D,YAAYhhE,MAAM0B,KAAKq/D,UAAU/gE,UAAUL,EAAE+B,KAAKq/D,UAAUj+D,GAAG3C,EAAEuB,KAAKq/D,UAAUj+D,EAAE,GAAG5C,EAAEwB,KAAKs/D,YAAYl+D,GAAGC,EAAErB,KAAKs/D,YAAYl+D,EAAE,GAAGlD,KAAKD,MAAMA,GAAGqD,EAAEtB,KAAK8a,OAAO1Z,GAAG7C,GAAGJ,EAAE6B,KAAK8a,OAAO1Z,EAAE,GAAG7C,GAAG4C,EAAE3C,KAAKP,MAAMqD,GAAGoC,GAAGrC,KAAKpD,MAAMqD,UAAU05D,GAAE98D,EAAEoD,EAAEnD,GAAGD,KAAKA,GAAG88D,GAAE98D,EAAEiD,EAAEuC,GAAGgL,SAASnQ,EAAE2C,EAAEE,EAAE,UAAUpB,KAAKq/D,UAAUxgE,KAAKN,GAAGyB,KAAK8a,OAAOjc,KAAK,iBAAiBqC,EAAE,IAAIA,EAAEA,EAAEyuD,MAAMroD,KAAKpG,IAAIlB,KAAKs/D,YAAYzgE,KAAKuC,GAAGpB,OAA8/C84D,QAAQ,KAA5VyG,OAAO,SAASrxD,EAAEhN,EAAEE,OAAOo+D,GAAGlhE,EAAEmhE,KAAKxhE,EAAEyhE,MAAMjhE,EAAEkhE,KAAKnhE,EAAEohE,MAAMv+D,EAAEw+D,KAAK3hE,GAAGgQ,SAAS9M,QAAQ,IAAI3C,EAAED,EAAE6C,EAAEnD,GAAG,CAACM,EAAE6C,EAAEnD,EAAEO,cAAc,KAAKA,EAAED,EAAE6C,EAAEnD,GAAG,CAACmD,EAAEnD,EAAEO,EAAED,cAAc,KAAKC,EAAED,EAAE6C,EAAEnD,GAAG,CAACA,EAAEO,EAAED,EAAE6C,UAAUH,QAAQ,IAAI5C,EAAEG,EAAER,EAAEoD,GAAG,CAAC5C,EAAER,EAAEoD,EAAE/C,cAAc,KAAKA,EAAEG,EAAER,EAAEoD,GAAG,CAACpD,EAAEoD,EAAE/C,EAAEG,cAAc,KAAKH,EAAEG,EAAER,EAAEoD,GAAG,CAACA,EAAE/C,EAAEG,EAAER,SAAS,CAACuhE,GAAGlhE,EAAEmhE,KAAKxhE,EAAEyhE,MAAMjhE,EAAEkhE,KAAKnhE,EAAEohE,MAAMv+D,EAAEw+D,KAAK3hE,IAcz5lB,SAASK,cAAc2P,EAAEyrD,SAAS,iBAAiBzrD,EAAE,IAAI9M,EAAE8M,EAAE,MAAAyrD,EAAQA,EAAEzrD,GAAGA,IAAI5D,OAAO,SAAS4D,EAAEyrD,EAAEmG,EAAEjC,EAAEI,EAAEC,UAAU,IAAIjgE,EAAEiQ,EAAEyrD,EAAEmG,EAAEjC,EAAEI,EAAEC,IAAI3/D,EAAEssB,WAAW,SAAS3c,EAAE4xD,EAAEp/D,EAAEu9D,EAAEC,EAAE6B,EAAEv5D,UAAU,IAAIlI,EAAE4C,EAAEgN,GAAGhN,EAAE4+D,GAAG5+D,EAAER,GAAGQ,EAAE+8D,GAAG/8D,EAAEg9D,GAAGh9D,EAAE6+D,GAAGv5D,IAAIjI,EAAEmK,MAAMxH,UAAUwN,YAAYR,EAAEyrD,QAAQtkD,IAAInH,EAAElO,KAAKsI,IAAIqxD,EAAEjrD,SAASR,SAASyrD,GAAG,iBAAiBzrD,EAAEA,EAAEA,EAAEmH,KAAKrV,KAAKsI,IAAIw3D,EAAE9/D,KAAKqV,KAAK,iBAAiBnH,EAAEA,EAAEA,EAAE5F,YAAYqxD,EAAE,EAAEA,EAAEpxD,KAAKD,IAAIw3D,EAAE,GAAGpxD,MAAMR,UAAU,IAAI9M,EAAEmH,KAAK8M,IAAIrV,KAAKqV,IAAInH,EAAEmH,KAAK9M,KAAKD,IAAItI,KAAKsI,IAAI4F,EAAE5F,sBAAsB4F,OAAOyrD,KAAK,iBAAiBzrD,SAAS,IAAI9M,EAAE8M,EAAEA,SAAS2vD,EAAEn9D,GAAG,UAAUwG,GAAEy0D,UAAUztD,MAAMhH,GAAEs0D,WAAWI,YAAO,IAAAjC,EAAWA,EAAE,UAAU,IAAIv4D,EAAE,MAAMy8D,EAAEA,EAAE,EAAE,MAAMn9D,EAAEA,EAAE,MAAMs/D,MAAM5+D,UAAUsN,YAAYR,EAAEyrD,EAAEmG,EAAEjC,EAAEn9D,EAAEu9D,EAAEC,QAAQ3lC,YAAYrqB,EAAElO,KAAKw4B,SAASmhC,EAAE35D,KAAKk5C,gBAAgB4mB,EAAE9/D,KAAKi5C,QAAQ4kB,EAAE79D,KAAKu5B,MAAM74B,EAAEV,KAAKy4B,UAAUwlC,EAAEj+D,KAAKyP,OAAOyuD,EAAExvD,SAASR,UAAU+xD,GAAEjgE,KAAKu4B,YAAY1W,SAAS3T,EAAEqqB,cAAc0nC,GAAEjgE,KAAKw4B,SAAS3W,SAAS3T,EAAEsqB,WAAWynC,GAAEjgE,KAAKk5C,gBAAgBr3B,SAAS3T,EAAEgrC,kBAAkB+mB,GAAEjgE,KAAKi5C,QAAQp3B,SAAS3T,EAAE+qC,UAAUgnB,GAAEjgE,KAAKu5B,MAAM1X,SAAS3T,EAAEqrB,QAAQ0mC,GAAEjgE,KAAKy4B,UAAU5W,SAAS3T,EAAEuqB,YAAYwnC,GAAEjgE,KAAKyP,OAAOvB,EAAEuB,QAAQf,cAAc,CAAC1O,KAAKu4B,YAAYv4B,KAAKw4B,SAASx4B,KAAKk5C,gBAAgBl5C,KAAKi5C,QAAQj5C,KAAKu5B,MAAMv5B,KAAKy4B,UAAU,IAAIr3B,EAAEpB,KAAKyP,OAAOzP,KAAKyP,yBAAyBvB,OAAOyrD,EAAEj5D,QAAQu9D,EAAE,UAAU/2D,GAAE2yD,WAAW3rD,UAAK,IAASyrD,EAAEA,EAAE,UAAU,IAAIr7D,EAAE8C,EAAEq9D,SAASR,EAAE1lC,aAAan3B,EAAEq9D,SAASR,EAAEzlC,UAAUp3B,EAAEq9D,SAASR,EAAE/kB,iBAAiB93C,EAAEq9D,SAASR,EAAEhlB,SAAS73C,EAAEq9D,SAASR,EAAE1kC,OAAOn4B,EAAEq9D,SAASR,EAAExlC,WAAW,UAAUvxB,GAAEu0D,QAAQwC,EAAExuD,eAAU,IAAA/O,EAAWA,EAAE,MAAMw/D,WAAW5hE,UAAUoQ,YAAYR,EAAEyrD,EAAEmG,EAAEjC,EAAEn9D,EAAEu9D,QAAQ1lC,YAAYrqB,EAAElO,KAAKw4B,SAASmhC,EAAE35D,KAAKk5C,gBAAgB4mB,EAAE9/D,KAAKi5C,QAAQ4kB,EAAE79D,KAAKu5B,MAAM74B,EAAEV,KAAKy4B,UAAUwlC,sBAAsB,EAAEvvD,gBAAgB,CAAC1O,KAAKu4B,YAAYv4B,KAAKw4B,SAASx4B,KAAKk5C,gBAAgBl5C,KAAKi5C,QAAQj5C,KAAKu5B,MAAMv5B,KAAKy4B,UAAUz4B,KAAKyP,WAAW0wD,YAAYliE,IAAImiE,WAAW,MAAM1xD,YAAYR,QAAQmyD,OAAOnyD,EAAElO,KAAKkJ,MAAM,IAAIzK,EAAEyP,GAAGQ,KAAKR,UAAUlO,KAAKkJ,MAAMY,OAAOoE,GAAG,CAAC0tD,EAAEjC,IAAIiC,EAAE/5C,SAAS83C,eAAejrD,YAAYR,QAAQimD,KAAK11D,EAAE6hE,MAAMpyD,EAAEnF,KAAK,EAAE6yD,EAAEjC,KAAK,IAAIz7D,EAAE09D,EAAEjC,mBAAmBzrD,MAAM,IAAIA,EAAEtP,cAAcsP,EAAE,MAAMA,EAAEtP,QAAQH,EAAE8hE,kBAAkB,OAAOC,EAAEtyD,EAAEnF,aAAa03D,EAAE,UAAUC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAO3C,EAAEnC,EAAE+E,MAAMD,MAAMn4D,KAAKq4D,OAAOvrD,IAAI0oD,EAAEz1D,KAAK,SAAS,CAACnJ,IAAIshE,EAAEt2D,KAAKyxD,MAAMn7D,MAAM,CAACm7D,EAAE6E,IAAI7E,EAAEz8D,IAAIshE,EAAEthE,MAAM4J,KAAK,EAAEoB,KAAKyxD,KAAKA,WAAW,IAAIv6D,EAAEm/D,OAAO7G,EAAE,EAAA,EAAImG,KAAKjC,EAAE,WAAWn9D,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGD,KAAKyN,EAAExN,GAAE,GAAIm9D,EAAEp/D,EAAEoiE,UAAU3yD,OAAOgwD,EAAE,YAAYtC,KAAKiC,KAAKp/D,EAAEqiE,KAAKlF,EAAE+E,SAASzC,MAAMA,EAAE4B,EAAEp/D,UAAUwN,EAAEzP,EAAEgC,KAAKyN,EAAE4xD,GAAE,GAAIjC,EAAEp/D,EAAEoiE,UAAU3yD,GAAG2vD,EAAEp/D,EAAEgC,KAAKo9D,EAAEiC,GAAE,GAAI,IAAIz+D,EAAEw8D,EAAE90D,QAAQtK,EAAE6hE,MAAM1E,EAAE98D,yBAAyBoP,EAAEyrD,EAAEmG,UAAU5xD,EAAEnF,eAAe80D,EAAEjC,EAAE+E,MAAMhH,GAAGj5D,KAAK2U,IAAIwoD,EAAEv1D,KAAK,QAAQ,CAACnJ,IAAI2gE,EAAEv3D,KAAKq4D,IAAIlgE,GAAGA,EAAEyJ,KAAKyxD,MAAMn7D,MAAM,CAACm7D,EAAE4E,IAAI5E,EAAEz8D,IAAIqhE,EAAErhE,MAAM4J,KAAK,EAAEoB,KAAKyxD,KAAKA,qBAAqB1tD,SAASyrD,EAAE,OAAOmG,EAAE,SAASjC,EAAEt1D,KAAKg1D,IAAI,GAAGh1D,KAAK6vB,MAAM7vB,KAAKgL,IAAIrF,EAAEtP,OAAO,KAAK2J,KAAKgL,IAAI,gBAAgB7S,KAAKwN,IAAIrP,KAAK6B,GAAGo/D,EAAElhE,OAAOi/D,MAAMh/D,KAAK,IAAIwC,EAAEy+D,IAAIA,EAAE,WAAW,IAAIA,EAAElhE,QAAQ+6D,EAAE96D,KAAK,IAAIwC,EAAEy+D,IAAInG,cAAczrD,OAAOyrD,EAAE,YAAYmG,KAAK5xD,KAAK3F,KAAKq4D,IAAId,EAAEx3D,IAAIw3D,EAAEzqD,YAAYskD,EAAEjrD,OAAOR,EAAEyrD,UAAU35D,KAAKm0D,KAAKrqD,OAAOoE,EAAE6yD,UAAUpH,GAAGqH,WAAWT,kBAAkB,GAAGhiE,EAAE0iE,MAAMxiE,UAAUiQ,YAAYR,QAAQyyD,MAAMzyD,EAAEQ,SAASR,OAAOyrD,EAAE,UAAUmG,EAAE,EAAEA,EAAE,EAAEA,GAAG,KAAKG,GAAEjgE,KAAK2gE,MAAMb,GAAGj+C,SAAS3T,EAAE4xD,YAAYnG,KAAKuH,MAAM1iE,kBAAkBA,EAAEkQ,YAAYR,SAAS7M,EAAE8/D,WAAWjzD,IAAIlO,KAAKlB,SAASoP,oBAAoBA,OAAOyrD,EAAE,IAAI53D,MAAM,IAAIgH,KAAK,IAAI,IAAI3H,EAAE,EAAA,GAAI,EAAA,eAAkB0+D,KAAK5xD,IAAI,IAAInM,MAAM,IAAIgH,KAAK,CAAC6yD,EAAEiC,IAAIlE,EAAEkE,GAAGuD,MAAMtB,EAAEa,MAAM9C,aAAalE,EAAEjrD,OAAOR,EAAEyrD,OAAOmG,EAAE,EAAA,EAAIjC,EAAE,eAAen9D,KAAKV,KAAKlB,SAAS,OAAOm/D,EAAEtE,EAAEj5D,EAAEwN,MAAM4xD,GAAG7B,iBAAiBC,EAAEx9D,EAAEoJ,OAAOoE,EAAEyrD,GAAGoG,EAAEr/D,GAAGw9D,EAAED,EAAEtE,EAAEuE,EAAEhwD,MAAM6xD,MAAMA,EAAElC,EAAEK,UAAUL,KAAKwD,SAAShgE,kBAAkB7C,EAAEkQ,YAAYR,EAAEyrD,SAASzrD,EAAEyyD,SAAS3gE,KAAKghE,MAAMrH,EAAEjrD,gBAAgB1O,QAAQshE,MAAMpjE,EAA/lH,CAAkmH66D,QAAQ,KAAK,SAASrqD,YAAYnQ,QAAQ4hB,MAAM5hB,EAAEmQ,kBAAkB1O,KAAKmgB,sBAAsB5hB,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAE2yD,WAAWt7D,UAAK,IAAA2C,EAAWA,EAAE,GAAGjD,EAAE,UAAUiJ,GAAE4yD,WAAWx7D,EAAE6hB,cAAS,IAAS/e,EAAEA,EAAE,4BAA4B,IAAImgE,GAAGtjE,IAAI,SAASyQ,YAAYnQ,QAAQssB,WAAWtsB,EAAEmQ,SAASnQ,EAAE2C,EAAEE,EAAE9C,SAASL,EAAEK,EAAEC,EAAE2C,EAAEE,UAAUpB,KAAK6qB,WAAW22C,KAAKvjE,mBAAmBM,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAE2yD,WAAWt7D,UAAK,IAAA2C,EAAWA,EAAE,GAAGjD,GAAG,UAAUiJ,GAAEy0D,UAAUr9D,EAAEm5B,gBAAgBkiC,IAAiB6G,WAAsI,UAAUt5D,GAAE2yD,WAAW3rD,UAAK,IAASyrD,EAAEA,EAAE,GAAvK,CAACx5C,MAAM,UAAUjZ,GAAE4yD,WAAW8B,EAAEz7C,cAAS,IAAAqgD,EAAWA,EAAE,qBAAqB31C,WAAWkuC,GAAGmH,WAAWzB,SAAS7C,EAAE/wC,uBAAiE,IAASzpB,EAAEA,EAAE,IAAI2H,QAAQ,CAACmF,EAAE2c,WAAW,IAAI3c,EAAEiS,gBAAgB,IAAIshD,GAAG,IAAI1I,GAAGqH,WAAWniE,MAAM,SAASM,cAAc2P,UAAU5M,EAAEquD,MAAMzhD,GAAG,gBAAgBA,UAAU/P,EAAEwxD,MAAMzhD,cAAcA,UAAU/M,EAAEwuD,MAAMzhD,cAAcA,UAAU,SAAS0yD,IAAIr4D,KAAKq4D,IAAI1yD,GAAG,UAAU,aAAauB,OAAOvO,EAAE3C,EAAEmjE,OAAOtgE,EAAE7C,EAAEojE,MAAMrjE,EAAEC,EAAEqjE,gBAAgB3jE,EAAEM,EAAEsjE,MAAM,SAAS3zD,EAAEyrD,EAAEmG,SAAS,CAACgC,WAAW5zD,EAAE+qC,QAAQ0gB,EAAElhC,UAAUqnC,EAAEiC,OAAO9jE,EAAE6hE,KAAKvhE,EAAEyjE,UAAU,SAAS9zD,EAAEyrD,4BAA4BpxD,KAAKq4D,IAAIjH,GAAG,MAAMp7D,EAAEwwC,MAAM,SAAS7gC,EAAExN,SAAS,CAAC+O,OAAOvO,EAAEgN,GAAGwzD,OAAOtgE,EAAE8M,GAAGyzD,MAAMrjE,EAAE4P,GAAG8zD,UAAUthE,UAAUjC,EAAEE,EAAE,wBAAwB,EAAE,EAAE,GAAG,QAAO,GAAG,GAAIH,EAAEG,EAAE,oBAAoB,IAAI,GAAG,GAAG,UAAS,GAAG,GAAI0C,EAAE1C,EAAE,oBAAoB,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIT,EAAES,EAAE,kBAAkB,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,GAAI2C,EAAE,IAAI2gE,GAAE,oBAAoB/zD,EAAE4zD,aAAaI,cAAc,MAAMA,uBAAuBA,sBAAsBA,oBAAoBA,oBAAoBA,cAAczjE,GAAGyjE,cAAczjE,GAAGyjE,aAAa1jE,GAAG0jE,SAAS,IAAI7gE,GAAG6gE,SAAS,EAAEhkE,GAAGC,EAAE,IAAI8jE,GAAE,wBAAwB/zD,EAAE4zD,aAAaI,cAAc,KAAKA,cAAcx+D,EAAE,eAAe,KAAI,EAAG,4BAA4Bw+D,aAAax+D,EAAE,gBAAgB,KAAI,EAAG,6BAA6Bw+D,SAAS,IAAIx+D,EAAE,mBAAmB,KAAI,EAAG,gCAAgCw+D,SAAS,IAAIx+D,EAAE,mBAAmB,KAAI,EAAG,gCAAgCvC,EAAE,IAAI8gE,GAAE,YAAY/zD,EAAE4zD,aAAaI,SAAS,GAAG,GAAGA,SAAS,GAAG,IAAID,GAAE,oBAAoB/zD,EAAE+qC,UAAUipB,aAAa,IAAID,GAAE,2BAA2B/zD,EAAE6zD,SAASG,YAAY,GAAGA,SAAS,GAAG,GAAGA,SAAS,EAAE,IAAID,GAAE,qCAAqC/zD,EAAEuqB,YAAYypC,cAAc,IAAIA,SAAS,IAAI,MAAMA,aAAa,eAAeh0D,EAAEyrD,EAAEmG,EAAEjC,SAASn9D,EAAE,IAAIuhE,GAAE/zD,MAAM0tD,EAAE3iB,UAAUipB,aAAavI,GAAGuI,aAAa,KAAKA,cAAcvI,GAAGuI,cAAcvI,GAAGuI,aAAa,KAAKA,SAAS,IAAIvI,MAAMmG,EAAE,OAAOlE,EAAE,IAAIqG,GAAE,yBAAyBE,EAAE1pC,YAAYypC,SAAS,EAAEvI,GAAGuI,SAAS,GAAG,IAAIxB,EAAE,IAAIuB,GAAE,sBAAsBE,EAAEJ,SAASG,aAAavI,GAAGuI,cAActG,KAAKsG,SAAS,IAAIvI,GAAGuI,SAAS,IAAIxB,GAAGwB,SAAS,IAAIxB,GAAGwB,SAAS,IAAIvI,OAAO,OAAOiC,EAAE,IAAIqG,GAAEpE,MAAMsE,EAAEJ,SAASG,aAAavI,GAAGuI,cAAc,KAAKxB,EAAE,IAAIuB,GAAEpE,MAAMsE,EAAEJ,SAASG,SAAS,IAAIvI,GAAGuI,SAAS,GAAG,OAAOA,SAAS,IAAIxB,GAAGwB,SAAS,GAAGxB,GAAGwB,SAAS,IAAItG,GAAGsG,SAAS,IAAItG,GAAGsG,SAAS,IAAIvI,UAAUj5D,aAAawN,EAAEyrD,EAAEmG,EAAEjC,EAAEn9D,EAAEu9D,EAAEC,EAAE6B,EAAEv5D,EAAE47D,SAAS37D,EAAE9C,EAAEq3D,GAAEiD,EAAE,GAAG,KAAKmE,GAAGpE,EAAEr6D,EAAEq3D,GAAEiD,EAAE,GAAG,GAAGmE,GAAGC,EAAE1+D,EAAEs6D,EAAEmE,GAAGE,EAAE7+D,EAAEyK,EAAE,eAAeyrD,EAAE,IAAI,GAAGsE,EAAEjD,GAAE,GAAG,GAAG,IAAIiD,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIsE,EAAE9+D,EAAEyK,EAAE,iBAAiByrD,EAAEuE,EAAED,EAAEJ,EAAEI,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIuE,EAAE/+D,EAAEyK,EAAE,UAAUyrD,EAAEuE,EAAEA,EAAEL,EAAEn9D,EAAE,IAAIgB,EAAE+B,EAAEyK,EAAE,mBAAmByrD,EAAEuE,EAAEA,EAAEL,EAAEn9D,EAAE,IAAIkB,EAAE,IAAIqgE,GAAE/zD,MAAM0tD,EAAEmG,SAASG,YAAYvI,GAAGuI,aAAaM,GAAGN,SAAS,EAAExhE,EAAE,KAAKoB,EAAE2B,EAAEyK,EAAE,eAAe6xD,EAAEA,EAAElC,EAAEn9D,EAAE,GAAGkD,EAAE,IAAIq+D,GAAE/zD,MAAM0tD,EAAE3iB,UAAUipB,cAAcz7D,GAAGy7D,aAAalE,GAAGkE,aAAaG,GAAGH,cAAcI,GAAGJ,aAAaK,GAAGL,SAAS,GAAGM,UAAUh8D,GAAG5C,EAAEs+D,SAAS,GAAGxgE,GAAGwgE,SAAS,IAAItgE,GAAGsgE,SAAS,IAAItgE,GAAGsgE,SAAS,IAAIxgE,GAAGkC,EAAEs+D,SAAS,GAAGpgE,GAAG8B,aAAasK,EAAEyrD,SAASmG,EAAE,IAAImC,GAAE,iCAAiC/zD,KAAKyrD,QAAQiC,EAAEmG,SAASlE,EAAEt8D,KAAK2M,OAAOxN,EAAEa,EAAE,EAAE2M,OAAO+vD,EAAoB,OAATrC,EAAiD1tD,kBAAjB,MAAM0tD,KAAK,KAApD,IAASA,UAA4DqC,GAAGA,EAAE,EAAE,OAAOuC,EAAEj/D,OAAO2M,OAAOgwD,EAAE38D,OAAO2M,OAAO6xD,EAAEp+D,EAAEk8D,EAAEK,aAAagE,YAAYrE,EAAEkC,GAAGD,EAAEoC,cAAchE,GAAG4B,EAAEoC,cAAc1B,SAASh6D,EAAEjF,EAAE08D,EAAE/vD,OAAOk0D,EAAEzgE,EAAE6E,EAAE9F,EAAEu9D,EAAE,KAAKiE,SAASjE,EAAE,IAAIz3D,GAAGs5D,EAAEoC,SAASjE,EAAEz3D,EAAE47D,GAAGtC,EAAEoC,SAAS,EAAExhE,EAAE0hE,OAAO,OAAOxG,EAAEj6D,EAAEk8D,EAAEn9D,KAAK,QAAQwhE,YAAY35D,KAAKD,IAAI,GAAGu1D,IAAIiC,EAAEoC,SAAS,EAAElH,GAAE,GAAG6C,EAAEn9D,GAAGk7D,IAAIkE,EAAEoC,YAAYrE,EAAEjC,GAAGkE,EAAEoC,SAAS,EAAExhE,EAAEk7D,UAAUkE,aAAa5xD,EAAEyrD,EAAEmG,SAASjC,EAAE,aAAa,SAAS,MAAMlE,IAAI,MAAMA,UAAUzrD,EAAE4xD,EAAEv3D,KAAKD,IAAIu1D,UAAUt1D,KAAKD,IAAIu1D,EAAE,cAAc3vD,EAAEyrD,EAAEmG,EAAEjC,YAAY3vD,MAAM4xD,cAAc5xD,EAAEyrD,EAAEmG,EAAEjC,EAAEn9D,EAAEu9D,EAAEC,SAAS6B,EAAEx3D,KAAKD,IAAI,MAAMqxD,GAAGuE,GAAG13D,EAAE,KAAKs5D,UAAU,IAAImC,GAAE/zD,MAAM0tD,EAAEmG,SAASG,YAAYvI,EAAEoG,GAAGmC,aAAapC,EAAEv3D,KAAK8M,IAAI0qD,EAAEv5D,IAAI07D,SAAS,EAAErE,EAAEr3D,GAAG07D,SAAS,GAAGxhE,EAAE,KAAKm9D,IAAIqE,SAAS,EAAEjE,EAAE,MAAMv9D,KAAlhH,CAAwhHs4D,QAAQ,KAAK,SAAStqD,YAAYnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,QAAQgkE,WAAWvhE,EAAElB,KAAK0iE,WAAWthE,EAAEpB,KAAK2iE,SAAS1kE,EAAE+B,KAAK4iE,OAAOnkE,EAAEuB,KAAK6iE,SAAS,EAAE7iE,KAAK8iE,SAAS,EAAE9iE,KAAK+iE,SAAS,EAAE/iE,KAAKgjE,SAAS,EAAEhjE,KAAKijE,SAAS,EAAEjjE,KAAKkjE,SAAS,EAAEljE,KAAKmjE,SAAS,EAAEnjE,KAAKojE,SAAS,EAAEpjE,KAAKqjE,UAAU,EAAErjE,KAAKsjE,UAAU,EAAEtjE,KAAKujE,UAAU,EAAEvjE,KAAKwjE,UAAU,EAAExjE,KAAKyjE,QAAQ,EAAEzjE,KAAK0jE,QAAQ,EAAE1jE,KAAK2jE,SAASrlE,EAAE,GAAGC,EAAEyB,KAAK4jE,SAAStlE,EAAE,GAAG8C,EAAEpB,KAAK6jE,OAAOC,GAAGC,cAAc7iE,EAAEE,GAAGpB,KAAKgkE,OAAOF,GAAGC,cAAc7iE,EAAEE,wBAAwB7C,EAAE2C,SAASE,EAAEW,MAAMb,EAAE,WAAW5C,EAAE,EAAEA,EAAE4C,EAAE,EAAE5C,GAAG,IAAIA,GAAGyD,MAAMxD,EAAE,UAAU6C,EAAEsN,+BAA+Bu1D,UAAUjkE,KAAK6jE,OAAO7jE,KAAK2jE,UAAUj1D,aAAanQ,QAAQ0lE,UAAUjkE,KAAKgkE,OAAOhkE,KAAK2jE,SAASplE,EAAE,GAAGmQ,UAAUnQ,EAAE2C,WAAWE,EAAE,EAAEA,EAAEpB,KAAK0iE,WAAW,EAAEthE,GAAG,OAAOwhE,OAAOrkE,EAAE6C,GAAGF,EAAElB,KAAK4jE,SAASxiE,EAAEpB,KAAK2iE,SAAS3iE,KAAKyiE,YAAY/zD,aAAanQ,EAAE2C,QAAQ2hE,SAAS7iE,KAAK6jE,OAAO3iE,GAAG3C,GAAGyB,KAAK8iE,SAAS9iE,KAAK6jE,OAAO3iE,EAAE,GAAG3C,GAAGyB,KAAK+iE,SAAS/iE,KAAKgkE,OAAO9iE,GAAG3C,GAAGyB,KAAKgjE,SAAShjE,KAAKgkE,OAAO9iE,EAAE,GAAG3C,GAAGyB,KAAKijE,SAASjjE,KAAK6jE,OAAO3iE,GAAG3C,EAAE,GAAGyB,KAAKkjE,SAASljE,KAAK6jE,OAAO3iE,EAAE,GAAG3C,EAAE,GAAGyB,KAAKmjE,SAASnjE,KAAKgkE,OAAO9iE,GAAG3C,EAAE,GAAGyB,KAAKojE,SAASpjE,KAAKgkE,OAAO9iE,EAAE,GAAG3C,EAAE,GAAGmQ,WAAWnQ,QAAQ8kE,UAAUrI,GAAEz8D,EAAEyB,KAAK6iE,SAAS7iE,KAAKijE,UAAUjjE,KAAKsjE,UAAUtI,GAAEz8D,EAAEyB,KAAK+iE,SAAS/iE,KAAKmjE,UAAUnjE,KAAKujE,UAAUvI,GAAEz8D,EAAEyB,KAAK8iE,SAAS9iE,KAAKkjE,UAAUljE,KAAKwjE,UAAUxI,GAAEz8D,EAAEyB,KAAKgjE,SAAShjE,KAAKojE,UAAU10D,WAAWnQ,QAAQklE,QAAQzI,GAAEz8D,EAAEyB,KAAKqjE,UAAUrjE,KAAKsjE,WAAWtjE,KAAK0jE,QAAQ1I,GAAEz8D,EAAEyB,KAAKujE,UAAUvjE,KAAKwjE,WAAW90D,eAAenQ,UAAUy8D,GAAEz8D,EAAEyB,KAAKyjE,QAAQzjE,KAAK0jE,SAASh1D,cAAc1O,KAAK6jE,OAAO7jE,KAAKgkE,QAAQ,CAAChkE,KAAKgkE,OAAOhkE,KAAK6jE,SAAS,SAASn1D,YAAYnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,QAAQ6iE,UAAU3lE,EAAEyB,KAAKmkE,WAAWjjE,EAAElB,KAAKyiE,WAAWrhE,EAAEpB,KAAKokE,YAAY9lE,EAAE0B,KAAK+2B,SAAS94B,EAAE+B,KAAKqkE,cAAchjE,QAAQnD,EAAE,IAAIygE,GAAEngE,GAAG8C,EAAErD,EAAEqmE,gBAAgB,IAAI3F,GAAEngE,GAAGN,EAAEqmE,YAAYC,aAAa,IAAIC,GAAEnjE,GAAGpD,EAAEm/D,QAAQ,GAAGr9D,KAAK0kE,iBAAiB,IAAInG,GAAE,IAAIoG,GAAEnmE,GAAGC,EAAE85B,aAAav4B,KAAK4kE,cAAc,IAAIrG,GAAE,IAAIoG,GAAEnmE,EAAE28D,OAAO,IAAI18D,EAAE+5B,UAAUx4B,KAAK6kE,qBAAqB,IAAItG,GAAE,IAAIoG,GAAEnmE,EAAE28D,OAAO,IAAI18D,EAAEy6C,iBAAiBl5C,KAAK8kE,aAAa,IAAIvG,GAAE,IAAIoG,GAAEnmE,EAAE28D,OAAO,IAAI18D,EAAEw6C,SAASj5C,KAAK+kE,eAAe,IAAIxG,GAAE,IAAIoG,GAAEnmE,EAAE28D,OAAO,IAAI18D,EAAEg6B,WAAWz4B,KAAKglE,YAAY,IAAIzG,GAAE,IAAIoG,GAAEnmE,EAAE28D,OAAO,IAAI18D,EAAEuR,OAAOhQ,KAAKilE,kBAAkB,IAAI1G,GAAErgE,EAAEqmE,OAAO,CAAC7rC,gBAAgBC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAKjqB,WAAWnQ,EAAE2C,EAAEE,SAAS9C,EAAEC,EAAEyB,KAAKklE,UAAU3mE,EAAE,EAAE6C,GAAGnD,EAAEiD,EAAElB,KAAKklE,UAAUhkE,EAAEE,EAAE7C,GAAGE,EAAE2C,EAAEpB,KAAKklE,UAAU9jE,EAAE7C,EAAE,GAAGC,EAAEwB,KAAK0kE,iBAAiBjH,OAAOn/D,EAAEL,EAAEQ,GAAG4C,EAAErB,KAAK4kE,cAAcnH,OAAOn/D,EAAEL,EAAEQ,GAAGP,EAAE8B,KAAK6kE,qBAAqBpH,OAAOn/D,EAAE,EAAEG,GAAG6C,EAAEtB,KAAK8kE,aAAarH,OAAOn/D,EAAE,EAAEG,GAAGN,EAAE6B,KAAK+kE,eAAetH,OAAOn/D,EAAE,EAAEG,GAAG0C,EAAE63D,GAAGvpD,OAAOupD,GAAG6I,MAAM3jE,EAAEoD,EAAEnD,IAAIuF,EAAEyhE,GAAGC,wBAAwB,UAAU,EAAElkE,GAAGC,SAAS,IAAI43D,GAAGoH,YAAY3hE,EAAE6C,EAAEnD,EAAEoD,EAAEoC,EAAEvF,GAAGuQ,gBAAgBnQ,EAAE2C,MAAMlB,KAAKqkE,qBAAqBrkE,KAAKqkE,oBAAoBjjE,EAAE7C,EAAEyB,KAAKklE,UAAU3mE,EAAE,EAAE2C,GAAG5C,EAAE4C,EAAElB,KAAKklE,UAAUhkE,EAAE3C,EAAE,GAAGN,EAAE+B,KAAK6kE,qBAAqBpH,OAAOr8D,EAAE,EAAE9C,GAAGG,EAAEuB,KAAK8kE,aAAarH,OAAOr8D,EAAE,EAAE9C,GAAGE,EAAEwB,KAAK+kE,eAAetH,OAAOr8D,EAAE,EAAE9C,GAAG+C,EAAE23D,GAAG6I,MAAM5jE,EAAEQ,EAAED,GAAGN,EAAE86D,GAAGgJ,UAAU/jE,EAAEO,UAAUw6D,GAAGjqB,MAAM1tC,EAAEnD,GAAGwQ,UAAUnQ,EAAE2C,EAAEE,UAAU,EAAEpB,KAAKglE,YAAYvH,OAAOl/D,EAAE2C,EAAEE,GAAGsN,gBAAgBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,SAASQ,EAAEyC,EAAElB,KAAKkkE,WAAW,EAAE1lE,EAAE4C,EAAEpB,KAAKkkE,WAAW,GAAGz0D,OAAOpO,EAAEqgE,OAAOxjE,EAAEyjE,MAAMrgE,GAAGtB,KAAKqlE,gBAAgB5mE,EAAED,GAAGL,EAAE,QAAQ6B,KAAK+2B,SAAS1C,SAASixC,QAAQnkE,EAAE,QAAQnB,KAAK+2B,SAAS1C,SAASqb,OAAOhsC,EAAEvF,EAAE6B,KAAK+2B,SAAS1C,SAASkxC,SAAS5mE,EAAEwC,EAAEnB,KAAK+2B,SAAS1C,SAASmxC,gBAAgBvH,EAAE,EAAEA,GAAGhgE,EAAEggE,GAAG,EAAE,OAAOv9D,EAAEu9D,EAAE3/D,EAAE4/D,EAAEl+D,KAAKwkE,aAAa/G,OAAOv8D,EAAER,EAAEU,EAAEjD,EAAEgD,EAAEuC,EAAE/E,GAAGgF,EAAE3D,KAAKylE,gBAAgBnkE,EAAEJ,EAAElB,KAAKmkE,WAAW/iE,EAAEpB,KAAKmkE,YAAY,IAAI5iE,EAAEvB,KAAK0lE,sBAAsBhlE,EAAEV,KAAKmkE,WAAW9iE,EAAEnD,EAAE,EAAEyF,GAAGu6D,IAAID,GAAGj+D,KAAK2lE,WAAWpkE,EAAEb,IAAIgO,gBAAgBnQ,EAAE2C,EAAEE,MAAM,IAAA7C,SAAa,QAAQD,EAAE,IAAI0B,KAAKkkE,UAAUjmE,EAAE+B,KAAKilE,kBAAkBxH,OAAOv8D,EAAE5C,EAAE,EAAE8C,EAAE9C,UAAUL,EAAE,EAAEM,EAAEN,EAAEM,EAAE,EAAEN,EAAEyQ,sBAAsBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,SAASQ,MAAM2mE,wBAAwBplE,KAAK+2B,SAAS6uC,cAAc5lE,KAAK+2B,SAAS8uC,cAActnE,EAAED,GAAG4C,EAAEjD,GAAGmD,SAAS3C,KAAK,EAAE,EAAE,GAAGiQ,WAAWnQ,EAAE2C,SAASE,EAAEF,EAAEqH,KAAK6vB,MAAMp4B,KAAK+2B,SAASkjC,KAAKj6D,KAAKmkE,eAAenkE,KAAK+2B,SAAS+uC,SAASnxC,KAAK,EAAE,OAAOglC,QAAQ8I,WAAWrhE,EAAEpB,KAAK+2B,SAAS+uC,SAASr2D,QAAQzP,KAAK+2B,SAAS+uC,SAASnxC,OAAOwpC,GAAEn+D,KAAK+2B,SAAS+uC,SAASx7D,OAAO/L,EAAEo7D,MAAM35D,KAAK+2B,SAASgvC,YAAYpxC,KAAK,EAAE,OAAOglC,KAAK35D,KAAK+2B,SAASgvC,YAAYt2D,QAAQzP,KAAK+2B,SAASgvC,YAAYpxC,OAAOwpC,GAAEn+D,KAAK+2B,SAASgvC,YAAYz7D,OAAO/L,EAAEo7D,UAAUp7D,iCAAiCA,EAAE2C,EAAEE,EAAE9C,EAAE,UAAUC,KAAK6C,EAAE,IAAI9C,GAAG4C,GAAG,SAASwN,YAAYnQ,EAAE2C,EAAEE,EAAE9C,QAAQquB,KAAKpuB,EAAEyB,KAAKokE,YAAYljE,EAAElB,KAAK+2B,SAAS31B,EAAEpB,KAAKmkE,WAAW/iE,EAAEyyB,MAAMmyC,OAAO,EAAEhmE,KAAKkkE,UAAU9iE,EAAEyyB,MAAMoyC,QAAQ,EAAEjmE,KAAKkmE,YAAY39D,KAAK6vB,MAAM,GAAGp4B,KAAKkkE,WAAWlkE,KAAKyiE,WAAWl6D,KAAK6vB,MAAMh3B,EAAEyyB,MAAMO,OAAOp0B,KAAKmkE,YAAYnkE,KAAKmmE,QAAQ,IAAIhB,GAAGnlE,KAAKkkE,UAAUlkE,KAAKmkE,WAAWnkE,KAAKyiE,WAAWvhE,EAAEE,EAAEyyB,MAAMzyB,EAAE43C,QAAQz6C,EAAED,GAAGoQ,KAAKnQ,SAAS2C,EAAEqH,KAAKD,IAAI/J,EAAE07D,KAAKj6D,KAAK+2B,SAASlD,MAAMomC,MAAM74D,EAAEmH,KAAK8M,IAAI9W,EAAEk8D,KAAKz6D,KAAK+2B,SAASlD,MAAMomC,KAAKj6D,KAAK+2B,SAASlD,MAAMO,QAAQ91B,EAAEiK,KAAK6vB,MAAMl3B,EAAElB,KAAKmkE,YAAYlmE,EAAEsK,KAAK6vB,SAASl3B,GAAGlB,KAAKmkE,YAAY1lE,EAAEqC,GAAEs6D,UAAU78D,EAAEimD,KAAKhmD,EAAEsC,GAAEu6D,UAAU98D,EAAEimD,KAAKnjD,EAAE,IAAIyiE,GAAG9jE,KAAKkmE,YAAYjoE,EAAE+B,KAAKkmE,YAAY3nE,EAAEimD,IAAIlmD,EAAE0B,KAAKmmE,QAAQC,gBAAgB9+D,KAAKtH,KAAKmmE,UAAUjoE,EAAE6D,MAAMV,KAAKsD,YAAYuJ,EAAEm4D,oCAAoC1M,EAAE,EAAEA,EAAE35D,KAAKkmE,YAAYvM,GAAG,EAAE,GAAGh1D,YAAYuJ,EAAEo4D,aAAa3M,aAAamG,EAAE,EAAEA,EAAE9/D,KAAKkmE,YAAYpG,GAAG,EAAE,KAAKx+D,EAAE/C,EAAEu8D,mBAAmBv8D,EAAEi8D,cAAc,WAAWr8D,EAAEF,EAAE,EAAEE,GAAG,EAAEA,GAAG,EAAE,GAAGwG,YAAYuJ,EAAEq4D,aAAapoE,EAAE2hE,aAAap/D,EAAEV,KAAKmkE,WAAW,EAAEzjE,GAAG,EAAEA,GAAG,EAAE,OAAOS,KAAKhD,GAAG6B,KAAKmkE,WAAWzjE,EAAEgD,EAAE,GAAGvC,EAAExC,EAAEJ,EAAEq8D,gBAAgBz5D,KAAKy5D,gBAAgBt5D,EAAEklE,aAAa7nE,MAAMJ,EAAEu8D,mBAAmBn8D,UAAUgF,EAAEjD,EAAEV,KAAKmkE,aAAax/D,YAAYuJ,EAAEu4D,WAAW9iE,aAAauK,EAAE,EAAEA,EAAElO,KAAKkkE,UAAUh2D,GAAG,EAAE,OAAO2vD,EAAEp/D,EAAEk7D,EAAE35D,KAAKkkE,UAAUh2D,EAAEw4D,EAAE,GAAG7I,EAAEp3D,EAAEyH,EAAElO,KAAKkkE,YAAYv/D,YAAYi3D,EAAE+K,WAAWlgE,aAAam1D,EAAE,EAAEA,EAAE57D,KAAKkkE,UAAUtI,GAAG,EAAE,OAAO4E,EAAEhiE,EAAEshE,EAAE9/D,KAAKkkE,UAAUtI,EAAEqC,EAAE,GAAGuC,EAAEh6D,EAAEo1D,EAAE57D,KAAKkkE,UAAU0C,EAAEvlE,EAAEwlE,eAAergE,GAAG87D,EAAEtiE,KAAK8mE,UAAUjJ,EAAE18D,EAAEq/D,EAAEoG,KAAKt2D,OAAOspD,GAAEI,MAAM14D,EAAEy5D,cAAc2L,EAAEhjE,EAAEu6D,EAAEqE,SAAS39D,YAAYuJ,EAAE64D,gBAAgBr4D,UAAUnQ,EAAE2C,EAAEE,EAAE9C,eAd90H,SAAWC,EAAE2C,EAAEE,UAAUmH,KAAKD,IAAIpH,EAAEqH,KAAK8M,IAAIjU,EAAE7C,IAc8yH2F,CAAE5F,EAAE,OAAO,IAAI,EAAEA,EAAEA,EAAEA,EAAE,IAAI,EAAE0B,KAAK+2B,SAASiwC,aAAa9lE,EAAElB,KAAK+2B,SAASkwC,SAASjnE,KAAK+2B,SAASmwC,aAAatN,GAAEI,KCdpid,YAAW/7D,EAAEM,WAAW2C,KAAKjD,KAAK,aAAAiD,UAAuB3C,UAAS,UAAWE,KAAKF,KAAK,aAAAE,GAAgBR,EAAEQ,KAAKF,EAAEE,UAAS,SAAS,EAAG,YAAWR,QAAQiB,MAAMjB,EAAE,YAAWA,EAAEM,cAAcmC,OAAOi5D,EAAE35D,KAAKd,MAAME,IAAI6+D,EAAEtE,GAAGj5D,EAAEtB,WAAW6+D,GAAGtE,MAAMj0D,KAAKi0D,EAAE,MAAMA,EAAEjzD,QAAQ,MAAMnI,GAAGA,EAAEyB,KAAKd,MAAMwB,KAAKu9D,EAAEvE,GAAE15D,KAAKd,MAAMwB,cAAcwN,UAAUlO,KAAK0E,sBAAsBxD,EAAEkF,EAAEnI,EAAEiQ,UAAUzP,EAAE0oE,YAAY,WAAWA,aAAalpE,EAAE6H,MAAM,IAAIrH,EAAEsF,UAAUqjE,kBAAiB,EAAG3oE,EAAE4oE,KAAI,EAAG5oE,GDc2kew6D,QAAQ,KAAx+BwF,SAAS,SAASvwD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,EAAEgD,EAAEuC,QAAQ/E,EAAE,UAAUuI,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC+4D,KAAK,UAAU/yD,GAAEu0D,QAAQ98D,EAAE8sC,cAAS,IAAArqC,EAAWA,EAAE,EAAEgzB,OAAO,UAAUltB,GAAEu0D,QAAQ98D,EAAEy1B,eAAU,IAAA91B,EAAWA,EAAE,IAAI2nE,OAAO,UAAU/+D,GAAEu0D,QAAQ98D,EAAEu1B,wBAAmB,IAAAj2B,EAAWA,EAAE,EAAE+nE,MAAM,UAAU9+D,GAAEu0D,QAAQ98D,EAAEw1B,sBAAiB,IAAA11B,EAAWA,EAAE,EAAEmnE,cAAc,UAAU1+D,GAAEs0D,WAAW78D,EAAEm1B,uBAAkB,IAAAt1B,EAAWA,EAAE,EAAEqnE,cAAc,UAAU3+D,GAAEs0D,WAAW78D,EAAEo1B,uBAAkB,IAAA1yB,EAAWA,EAAE,EAAEgzB,SAAS6kC,GAAGuF,SAAS9/D,EAAE01B,UAAUyxC,SAAS3M,GAAGsF,SAAS9/D,EAAE+1B,WAAWqxC,YAAY5M,GAAGsF,SAAS9/D,EAAEi2B,cAAc0yC,uBAAuB,UAAUpgE,GAAEw0D,YAAY/8D,EAAEq1B,8BAAyB,IAAA91B,GAAYA,EAAEqpE,oBAAoB,UAAUrgE,GAAEw0D,YAAY/8D,EAAEs1B,8BAAyB,IAAS3yB,GAAGA,EAAEkmE,oBAAoB,UAAUtgE,GAAEw0D,YAAY/8D,EAAEg3B,8BAAyB,IAAAx3B,GAAYA,EAAEspE,YAAY,UAAUvgE,GAAEw0D,YAAY/8D,EAAEk3B,kBAAa,IAAS10B,GAAGA,EAAEmjE,gBAAgB,UAAUp9D,GAAEw0D,YAAY/8D,EAAE26C,0BAAqB,IAAS51C,GAAGA,KAAmXw1D,QAAQ,KAA3VuF,SAAS,SAASvwD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,QAAQD,EAAE,UAAU0I,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACokE,QAAQ,UAAUp+D,GAAEs0D,WAAWh9D,EAAE81B,iBAAY,IAAAlzB,EAAWA,EAAE,EAAEsuC,OAAO,UAAUxoC,GAAEs0D,WAAWh9D,EAAE+1B,gBAAW,IAASj2B,EAAEA,EAAE,EAAEinE,SAAS,UAAUr+D,GAAEs0D,WAAWh9D,EAAEg2B,kBAAa,IAAAv2B,EAAWA,EAAE,GAAGunE,QAAQ,UAAUt+D,GAAEs0D,WAAWh9D,EAAEi2B,iBAAY,IAASh2B,EAAEA,EAAE,MAAiS06D,QAAQ,KAAxQsF,SAAS,SAASvwD,OAAOhN,EAAEE,EAAE9C,EAAEL,QAAQQ,EAAE,UAAUyI,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACoJ,OAAO,UAAUpD,GAAEs0D,WAAW/8D,EAAE6L,eAAU,IAASlJ,EAAEA,EAAE,EAAEuzB,KAAK,UAAUztB,GAAEu0D,QAAQh9D,EAAEk2B,aAAQ,IAAAr2B,EAAWA,EAAE,EAAEmR,OAAO,UAAUvI,GAAEu0D,QAAQh9D,EAAEgR,eAAU,IAAAxR,EAAWA,EAAE,KAA+/Bm7D,QAAQ,KAAv+BqF,SAAS,SAASvwD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,QAAQgD,EAAE,UAAU+F,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACi3B,WAAWkhC,GAAGoF,SAASt9D,EAAEg3B,YAAYtE,MAAMolC,GAAGwF,SAASt9D,EAAE0yB,OAAOmlB,QAAQsgB,GAAGmF,SAASt9D,EAAE63C,SAASguB,aAAapN,GAAE6E,SAASt9D,EAAE0zB,eAAeqyC,aAAatN,GAAE6E,SAASt9D,EAAE2zB,eAAe4yC,oBAAoB,UAAUxgE,GAAEu0D,QAAQt6D,EAAEsyB,8BAAyB,IAAAryB,EAAWA,EAAE,EAAEumE,qBAAqB,UAAUzgE,GAAEu0D,QAAQt6D,EAAEuyB,+BAA0B,IAAAp1B,EAAWA,EAAE,EAAE2oE,SAAS,UAAU//D,GAAEu0D,QAAQt6D,EAAEwyB,kBAAa,IAAA11B,EAAWA,EAAE,EAAE2pE,qBAAqB,UAAU1gE,GAAEw0D,YAAYv6D,EAAEyyB,+BAA0B,IAAAn1B,GAAYA,EAAEopE,gBAAgB,UAAU3gE,GAAEw0D,YAAYv6D,EAAEwqC,yBAAoB,IAASntC,GAAGA,EAAEspE,kBAAkB,UAAU5gE,GAAEw0D,YAAYv6D,EAAEuqC,4BAAuB,IAAArqC,GAAYA,EAAE0mE,iBAAiB,UAAU7gE,GAAEw0D,YAAYv6D,EAAEyqC,0BAAqB,IAAS1tC,GAAGA,EAAE8pE,gBAAgB,UAAU9gE,GAAEw0D,YAAYv6D,EAAE42C,0BAAqB,IAAAz2C,GAAYA,EAAE2mE,mBAAmB,UAAU/gE,GAAEw0D,YAAYv6D,EAAE22C,6BAAwB,IAAS35C,GAAGA,KAA0oBk7D,QAAQ,KAAlnBoF,SAAS,SAASvwD,OAAOhN,QAAQE,EAAE,UAAU8F,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACkmC,WAAWlgC,GAAE40D,QAAQ16D,EAAEgmC,WAAWlgC,GAAE2yD,oBAAoBF,EAAEmG,EAAExhE,QAAQ,CAACujB,SAAS,UAAU3a,GAAEu0D,QAAQG,EAAE/5C,iBAAY,IAAS83C,EAAEA,EAAE,EAAE5kC,OAAO,UAAU7tB,GAAEu0D,QAAQG,EAAE7mC,eAAU,IAAA+qC,EAAWA,EAAE,EAAEngD,MAAM,UAAUzY,GAAEu0D,QAAQG,EAAEj8C,cAAS,IAAArhB,EAAWA,EAAE,MAAM65B,WAAWjxB,GAAE6yD,QAAQ34D,EAAE+2B,oBAAoBwhC,IAAiB6G,EAAEV,EAAExhE,WAAoL,UAAU4I,GAAE2yD,WAAW+B,UAAK,IAASjC,EAAEA,EAAE,GAArN,CAACtyB,QAAQ,UAAUngC,GAAEu0D,QAAQ0G,EAAE96B,gBAAW,IAASm5B,EAAEA,EAAE,EAAEl5B,WAAW,UAAUpgC,GAAEu0D,QAAQ0G,EAAE76B,mBAAc,IAAAw4B,EAAWA,EAAE,EAAEv4B,KAAK,UAAUrgC,GAAEu0D,QAAQ0G,EAAE56B,aAAQ,IAAAjpC,EAAWA,EAAE,SAA0Xg7D,QAAQ,KAA/SmF,SAAS,SAASvwD,OAAOhN,QAAQE,EAAE,UAAU8F,GAAE2yD,WAAW3rD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACq3B,YAAYsgC,GAAE4F,SAASr9D,EAAEm3B,aAAaC,SAASqgC,GAAE4F,SAASr9D,EAAEo3B,UAAU0gB,gBAAgB2f,GAAE4F,SAASr9D,EAAE83C,iBAAiBD,QAAQ4f,GAAE4F,SAASr9D,EAAE63C,SAASxgB,UAAUogC,GAAE4F,SAASr9D,EAAEq3B,WAAWzoB,MAAM6oD,GAAE4F,SAASr9D,EAAE4O,aCdtojBjM,UAAU,IAAI+C,GAAGohE,sBAAqB,EAAGhO,GAAEn2D,UAAUW,sBAAsB,SAASzG,EAAEM,UAAUm7D,GAAE15D,KAAKd,MAAMjB,IAAIy7D,GAAE15D,KAAKoE,MAAM7F,IAAI,IAAIyP,GAAE1M,EAAE/B,IAAI+B,EAAE/B,IAAI,SAAStB,KAAKgB,MAAMhB,EAAEgB,KAAKooE,KAAKppE,EAAEmB,QAAQF,MAAME,IAAInB,EAAEmB,IAAInB,EAAEmB,IAAI,MAAM4O,IAAGA,GAAE/P,IAAwV,IAA2MiI,GAAE5E,EAAE9B,IAAI8B,EAAE9B,IAAI,SAASvB,EAAEM,EAAE2C,MAAMjD,EAAEoJ,aAAa5I,EAAEN,EAAEI,EAAEJ,EAAEA,EAAEmB,UAAUnB,EAAEuB,MAAMjB,EAAEiB,WAAW,MAAAnB,EAAQiB,QAAQA,IAAI0B,EAAE1B,IAAIjB,EAAEc,IAAI6B,EAAE7B,KAAKZ,EAAEiB,IAAIzB,EAAEM,MAAKN,EAAEM,EAAE2C,IAAI,IAAI+7D,GAAE37D,EAAEqF,QAAQ,mBAAkBwhE,IAAI,EAAEnoE,KAAKnC,EAAE,KAAKmC,KAAKT,IAAI,KAAK,YAAWtB,OAAOM,EAAEN,EAAEqB,GAAGI,WAAWnB,GAAGA,EAAEiB,KAAKjB,EAAEiB,IAAIvB,GAAuL,mBAAkBN,EAAE,KAAKqC,KAAK8N,EAAE,KAAKxM,EAAEqF,QAAQ,SAAS1I,OAAOM,EAAEN,EAAEyB,OAAOnB,EAAE6pE,KAAK7pE,EAAE6pE,MAAM7pE,IAAG,IAAKN,EAAE0B,QAAQV,KAAK,MAAMg+D,IAAGA,GAAEh/D,QAAO8F,UAAU,IAAI+C,GAAGpH,IAAI,SAASzB,EAAEM,OAAO2C,EAAE3C,EAAEmB,IAAIjB,EAAEuB,KAAK,MAAMvB,EAAEZ,MAAMA,EAAE,IAAIY,EAAEZ,EAAEgB,KAAKqC,OAAO/C,EAAEggE,GAAE1/D,EAAEoB,KAAKrB,GAAE,EAAGF,EAAE,kBAAiB,EAAG4C,EAAEknE,IAAI,KAAKjqE,EAAEA,EAAED,GAAGA,QAAQkqE,IAAI9pE,MAAMJ,EAAE,iBAAiBO,EAAE0pE,IAAI,IAAI1pE,EAAE2F,MAAM5E,IAAI,KAAKkB,EAAEjC,EAAE2F,MAAM5E,MAAMK,IAAIR,IAAI,GAAG,WAAWu8D,EAAEjC,EAAEsE,UAAUrC,MAAM/7D,IAAI,KAAK+7D,EAAEv8D,IAAIu8D,EAAEv8D,KAAKu8D,EAAEv8D,IAAI0J,KAAI,SAASo5D,UAAUuE,EAAEvE,EAAExI,EAAEsE,MAAKrC,EAAEl8D,KAAKk8D,EAAEl8D,IAAIkB,MAAM+4D,MAAMn6D,KAAKy+D,EAAEz7D,aAAao5D,EAAEp8D,IAAIo8D,EAAEn8D,KAAKm8D,EAAEl8D,IAAIF,KAAI,EAAGo8D,EAAEl8D,IAAIkB,IAAIq9D,IAAIrC,EAAlL,CAAqLl7D,EAAEA,EAAEhB,IAAIkB,IAAIF,EAAEhB,IAAI2oE,SAASn6D,MAAMzP,EAAEuI,SAAS,CAACxH,IAAIf,EAAEc,IAAI,OAAO2O,EAAEzP,EAAEZ,EAAE4Q,SAAStH,gBAAgBxI,GAAE,IAAAJ,EAAOoB,MAAMwoE,OAAOxpE,GAAGF,EAAEuI,SAAS,CAACxH,IAAIf,EAAEc,IAAId,EAAEoB,IAAIR,IAAI,KAAKpB,EAAEoJ,KAAK/I,EAAEA,IAAI+D,GAAE0B,UAAU8C,qBAAqB,gBAAgBhJ,EAAE,IAAIwE,GAAE0B,UAAUC,OAAO,SAAS/F,EAAEM,MAAMyB,KAAKT,IAAI,IAAIS,KAAKH,IAAIR,IAAI,KAAK6B,EAAEkE,SAASG,cAAc,OAAO9G,EAAEuB,KAAKH,IAAIR,IAAI,GAAGK,SAASG,IAAIR,IAAI,GAAG,WAAW6O,EAAEyrD,EAAEsE,UAAU/vD,MAAMxO,KAAKwO,EAAExO,IAAIqO,QAAQrO,IAAIqO,IAAIzO,GAAGqF,SAAQ,SAAS+hE,GAAG,mBAAmBA,EAAEhnE,KAAKgnE,EAAEhnE,SAAQwO,EAAExO,IAAIqO,IAAI,MAAM,SAAztF,SAAW9P,EAAEM,WAAW2C,KAAK3C,IAAI2C,GAAG3C,EAAE2C,UAAUjD,EAAkrFgI,CAAE,GAAGiI,IAAIxO,QAAQA,IAAIkB,MAAMq9D,MAAMv+D,IAAIkB,IAAI+4D,GAAGzrD,EAAExO,IAAI,MAAMwO,EAAE7O,IAAI6O,EAAE7O,KAAK6O,EAAE7O,IAAI0J,KAAI,SAAS6yD,UAAUl7D,EAAEk7D,EAAEjC,EAAEsE,OAAM/vD,EAA5P,CAA+PlO,KAAKT,IAAI2B,EAAEzC,EAAE4pE,IAAI5pE,EAAEmC,UAAUrB,IAAI,SAASpB,EAAEI,EAAEiB,KAAK4G,EAAEpH,EAAE,KAAKf,EAAEmY,iBAAiBjY,MAAMwB,IAAI,MAAM,CAACyG,EAAEpH,EAAE,KAAKT,EAAEiB,IAAI,KAAKvB,EAAEa,UAAUX,IAAI,IAAI+F,GAAE,SAASjG,EAAEM,EAAE2C,QAAQA,EAAE,KAAKA,EAAE,IAAIjD,EAAE6P,EAAEw6D,OAAO/pE,GAAGN,EAAEiB,MAAMqpE,cAAc,MAAMtqE,EAAEiB,MAAMqpE,YAAY,KAAKtqE,EAAE6P,EAAE6mB,UAAUzzB,EAAEjD,EAAEN,EAAEuD,GAAG,MAAMA,EAAEtC,OAAO,KAAK6P,WAAWvN,EAAE,GAAGA,EAAE,WAAWvD,EAAEuD,EAAEA,EAAE,SAA8nB6C,UAAU,IAAI+C,GAAGtH,IAAI,SAASvB,OAAOM,EAAEyB,KAAKkB,EAAEi9D,GAAE5/D,EAAEsB,KAAKpB,EAAEF,EAAEuP,EAAE+B,IAAI5R,UAAUQ,EAAE,KAAK,SAASN,OAAOK,EAAE,aAAaU,MAAMqpE,eAAe1pE,KAAKV,GAAG+F,GAAE3F,EAAEN,EAAEQ,IAAIN,OAAO+C,EAAE1C,GAAGA,MAAMyhE,GAAEl8D,UAAUC,OAAO,SAAS/F,QAAQN,EAAE,KAAKqC,KAAK8N,EAAE,IAAIwa,QAAQ/pB,EAAE0F,EAAEhG,EAAEa,YAAYypE,aAAa,MAAAtqE,EAAQsqE,YAAY,IAAIhqE,EAAEiqE,kBAAkBtnE,EAAE3C,EAAEK,OAAOsC,UAAU4M,EAAEgC,IAAIvR,EAAE2C,GAAGlB,KAAKrC,EAAE,CAAC,EAAE,EAAEqC,KAAKrC,WAAWM,EAAEa,UAAUmhE,GAAEl8D,UAAUc,mBAAmBo7D,GAAEl8D,UAAUS,kBAAkB,eAAevG,EAAE+B,UAAU8N,EAAEnJ,SAAQ,SAASpG,EAAE2C,MAAKjD,EAAEiD,EAAE3C,OAAM,IAAIogE,GAAE,oBAAoBpuD,QAAQA,OAAOk4D,KAAKl4D,OAAOk4D,IAAI,kBAAkB,MAAM5lE,GAAE,mOAAmOu6D,GAAE,SAASn/D,UAAU,oBAAoBsS,QAAQ,iBAAiBA,SAAS,eAAe,eAAe7N,KAAKzE,IAAkL6I,EAAE/C,UAAUqjE,iBAAiB,GAAG,CAAC,qBAAqB,4BAA4B,uBAAuBziE,SAAQ,SAAS1G,UAAUmQ,eAAetH,EAAE/C,UAAU9F,EAAE,CAACyqE,cAAa,EAAG74D,IAAI,kBAAkB7P,KAAK,UAAU/B,IAAI6R,IAAI,SAASvR,UAAU6P,eAAepO,KAAK/B,EAAE,CAACyqE,cAAa,EAAGC,UAAS,EAAGvmE,MAAM7D,UAAS,IAAI4E,GAAE7B,EAAEkC,MAAM,eAAc,qBAAoBxD,KAAK4oE,aAAa,qBAAoB5oE,KAAK6oE,iBAAiBvnE,EAAEkC,MAAM,SAASvF,UAAUkF,OAAMA,GAAElF,IAAIA,EAAE6qE,QAAQ7G,GAAEhkE,EAAE8qE,qBAAqBtE,GAAExmE,EAAE+qE,mBAAmB5lE,GAAEnF,EAAEgrE,YAAYhrE,GAAM,IAAGirE,GAAE,CAACR,cAAa,EAAG74D,IAAI,kBAAkB7P,KAAKmpE,QAAQxE,GAAErjE,EAAEvB,MAAMuB,EAAEvB,MAAM,SAAS9B,OAAOM,EAAEN,EAAEgB,KAAKiC,EAAEjD,EAAEiB,MAAMT,EAAEyC,KAAK,iBAAiB3C,EAAE,SAASJ,KAAKM,EAAE,GAAGyC,EAAE,KAAK1C,EAAE0C,EAAE/C,GAAG,UAAUA,GAAG,iBAAiB+C,GAAG,MAAA1C,IAAU,iBAAiBL,GAAG,UAAU+C,GAAG,MAAAA,EAAQkB,MAAMjE,EAAE,QAAQ,aAAAA,IAAgB,IAAKK,EAAEA,EAAE,GAAG,iBAAiBkE,KAAKvE,GAAGA,EAAE,aAAa,6BAA6BuE,KAAKvE,EAAEI,KAAK6+D,GAAEl8D,EAAEjC,MAAMd,EAAE,UAAU,6BAA6BuE,KAAKvE,GAAGA,EAAEA,EAAE4E,cAAcF,GAAEH,KAAKvE,GAAGA,EAAEA,EAAE2E,QAAQ,WAAW,OAAOC,cAAc,OAAOvE,WAAM,GAAQC,EAAEN,GAAGK,GAAG,UAAUD,GAAGE,EAAE2qE,UAAUrnE,MAAMC,QAAQvD,EAAE2D,WAAWA,MAAM6B,EAAE/C,EAAEpC,UAAU6F,SAAQ,SAASjE,KAAKxB,MAAMmqE,aAAS5qE,EAAM2D,MAAMjC,QAAQO,EAAExB,MAAMkD,WAAU,UAAA7D,GAAa,MAAME,EAAE6qE,iBAAiBlnE,MAAM6B,EAAE/C,EAAEpC,UAAU6F,SAAQ,SAASjE,KAAKxB,MAAMmqE,SAAS5qE,EAAE2qE,aAAS3qE,EAAM6qE,aAAanpE,QAAQO,EAAExB,MAAMkD,OAAO3D,EAAE6qE,cAAc5oE,EAAExB,MAAMkD,UAASnE,EAAEiB,MAAMT,KAAKyC,EAAEioE,OAAOjoE,EAAEqoE,eAAc/tD,WAAW,cAActa,EAAE,MAAAA,EAAQqoE,cAAcJ,MAAMjoE,EAAEqoE,WAAW19D,OAAOuC,eAAe3P,EAAE,YAAYyqE,KAAIjrE,EAAEurE,SAAS7K,GAAEgG,IAAGA,GAAE1mE,IAAI,IAAIwrE,GAAEnoE,EAAEf,IAAIe,EAAEf,IAAI,SAAStC,OAAMwrE,GAAExrE,IAA2K,iBAAiByrE,aAAa,mBAAmBA,YAAYC,KAAID,YAAYC,IAAIriE,KAAKoiE"} \ No newline at end of file diff --git a/dimension-type/index.html b/dimension-type/index.html index 2b73b1d6..5ce2013d 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -20,8 +20,8 @@ Dimension Type Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/dimension/index.html b/dimension/index.html index b18ac49d..6cec9d5d 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -20,8 +20,8 @@ Dimension Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/index.html b/index.html index 5d92ccba..4f6cf4e5 100644 --- a/index.html +++ b/index.html @@ -20,8 +20,8 @@ Data Pack Generators Minecraft 1.15, 1.16, 1.17 - - + + diff --git a/item-modifier/index.html b/item-modifier/index.html index 01a1791d..6d72be1b 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -20,8 +20,8 @@ Item Modifier Generator Minecraft 1.17, 1.18 - - + + diff --git a/loot-table/index.html b/loot-table/index.html index 28a4a07b..87a40f1e 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -20,8 +20,8 @@ Loot Table Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/predicate/index.html b/predicate/index.html index 178c64d0..a76e4e60 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -20,8 +20,8 @@ Predicate Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/recipe/index.html b/recipe/index.html index 78952896..be6402aa 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -20,8 +20,8 @@ Recipe Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/world/index.html b/world/index.html index a9d8d465..a153fb26 100644 --- a/world/index.html +++ b/world/index.html @@ -20,8 +20,8 @@ World Settings Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index 4530463a..d27eaf0e 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -20,8 +20,8 @@ Biome Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index 00bf6c14..6f4fcb87 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -20,8 +20,8 @@ Carver Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index ef5d2f38..5215b384 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -20,8 +20,8 @@ Feature Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index c17e1885..bb41f611 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -20,8 +20,8 @@ Noise Settings Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index f0c621e4..dbec9c37 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -20,8 +20,8 @@ Processor List Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 18cc2b9c..27d68d6b 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -20,8 +20,8 @@ Structure Feature Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 1078edd6..b49057ee 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -20,8 +20,8 @@ Surface Builder Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 1f864783..cb72d680 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -20,8 +20,8 @@ Template Pool Generator Minecraft 1.16, 1.17, 1.18 - - + +